Найдите в шаблоне букву I, за которой следует пробел, затем три буквенных числа, за которыми следует пробел. - PullRequest
0 голосов
/ 20 ноября 2008

Необходимо найти следующий шаблон:

Буква I, за которой следуют пробел, затем три буквенных числа, за которыми следует пробел

"Я АЛЬН" "Я Н21" "Я 31М"

за этими элементами также следует лат / лон, который заперт этим выражением:

Dim regex As New Regex ("\ d {6} \ d {7}")

Можно ли объединить выражения для получения совпадения, которое будет выглядеть следующим образом:

"H21 ###### #######"

Спасибо

Dave

Ответы [ 2 ]

4 голосов
/ 20 ноября 2008

/ I ([0-z] {3} \ d {6} \ d {7}) /

Я не знаю VB, но это регулярное выражение будет работать, скажем, с perl.

Обновление:
Учитывая предоставленную новую строку .. что-то вроде может работать (в зависимости от ответов на мои вопросы)

/^[A-z] ([0-z]{3}) [A-z] [0-z]{3} L (\d{6} \d{7})/

Затем будут объединяться совпадения (совпадение 1, содержащее AAA, совпадение 2, содержащее широту / долготу).

Обновление № 2:
Из ОП: Нет по шаблону. Единственным шаблоном является I AAA, затем в той же строке 4000931 0892006. Можете ли вы добавить оператор OR в выражение

Вы можете добавить ИЛИ, вроде как, но я не уверен, что это действительно то, что вы хотите? Это новое регулярное выражение будет соответствовать I, за которым следует пробел, за которым следуют 3 буквенно-цифровых символа, а затем «что-нибудь» и широта / долгота. Обратите внимание, что если в файле есть данные или что-то, что вы анализируете, которые соответствуют такой строке (то есть это «другие» данные, но по аналогичной схеме), вы, вероятно, поймете это тоже.

/^I ([0-z]{3}) .* (\d{6} \d{7})/

1 голос
/ 20 ноября 2008
I ([a-zA-Z\d]{3} \d{6} \d{7})

Группа совпадений 1 будет содержать три алфавитно-цифровых цифры и числа, которые вы уже поймали с помощью другого регулярного выражения.

РЕДАКТИРОВАТЬ: не работает, потому что шаблон, описанный в вопросе, не отражает то, что автор имел в виду в первую очередь. Что в действительности имелось в виду, было сначала разъяснено в комментариях.

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