Лучший способ найти шаблон 6-значный пробел 7-значный ###### ####### с VB.NET - PullRequest
0 голосов
/ 19 ноября 2008

Разбор текстового файла в vb.net и необходимо найти широту и долготу в этих двух разделах текста. Скороговорка состоит из 6 цифр и 7 цифр (364800 0953600). Образцы взяты из двух разных файлов карт и имеют слегка отличающиеся форматы.

I 2H02 364800 0953600 '                 SEC72                           10496300-
I 2H05 360100 0953645 '                               ZFW J602 ZME 2A93 10496400-
I 2H06 361215 0952400 '                 SEC72                  ZME 2A75 10496500-
I 2H07 361715 0951145 '                 SEC27/72               ZME 2A78 10496600-
I 2H08 362025 0950100 '                 TUL                    ZME 2A69 10496700-
I 2H10 360800 0952915 '                                        ZME 2A85 10496800-
I 2H11 362500 0955015 '                 SEC62/72                        10496900-
I 2H14 364145 0954315 '                 TUL                             10497000-


I A85A                  'AL851                                50591 REF 33393944 
         391500 0831100 '                                     50591 REF 33393945 
I A85B                  'AL851                                50591 REF 33393946 
         374500 0825700 '                                     50591 REF 33393947 
I A87A                  'AL871                               111592 REF 33393948 
         402050 0814420 '                                    111592 REF 33393949 
I A87B                  'AL871                               111592 REF 33393950 
         400449 0814400 '                                    111592 REF 33393951 
I A87C                  'AL872                              '030394 GDK 33393952 
         392000 0810000 '                                   '030394 GDK 33393953

Спасибо,

Dave

Ответы [ 4 ]

6 голосов
/ 19 ноября 2008
Dim matches As MatchCollection
Dim regex As New Regex("\d{6} \d{7}")
matches = regex.Matches(your_text_string)
6 голосов
/ 19 ноября 2008

Простое регулярное выражение должно сделать это:

[0-9]{6} [0-9]{7}
2 голосов
/ 19 ноября 2008

.....

(?<First>\d{6})\s(?<Second>\d{7})
0 голосов
/ 19 ноября 2008

Сделайте простой захват группы. Похоже, что ваша формула RegEx будет достаточно простой для обработки обоих сценариев (немного потеряйте при обнаружении пространства). Затем вы можете получить доступ к групповым свойствам совпадения (именованным или просто базовым индексом) и получить необходимые данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...