Выражение регулярного выражения, чтобы соответствовать этому: 090129 YBB 100 - PullRequest
2 голосов
/ 16 марта 2009

Написание быстрого приложения, которое поможет мне фильтровать текстовые файлы.

Я читаю текстовый файл построчно, и мне нужно сопоставить последовательность символов, которая выглядит следующим образом: 090129 YBB 100

Первый набор, 090129, будет 6 цифрами (0-9). Далее следует пробел, а затем YBB - всегда. После этого еще один пробел, затем 2-3 номера (0-9).

Этот шаблон также всегда будет первой частью строки.

Вот мой хак:

^[0-9][0-9][0-9] (YBB) [0-9][0-9][0-9]\b

Конечно, не работает ... но я регби нуб. Заранее спасибо!

Ответы [ 4 ]

5 голосов
/ 16 марта 2009

Вот так:

^([\d]{6})\s(?:YBB)\s([\d]{2,3})\b

Пояснение:

а) Старт в начале строки. б) Совпадение 6 цифр. Сохранить в backref 1. в) Совпадение с пробелом. г) Матч "YBB". Не сохраняйте в backref. д) Совпадение с пробелом. е) Совпадение 2-3 цифры. Сохранить в backref 2.

Конечно, важно знать, какую часть этого шаблона вы хотите извлечь в обратную ссылку. Если вы предоставите эту информацию, я могу отредактировать свой пост.

2 голосов
/ 16 марта 2009

В Perl я бы сделал:

^(\d{3}) YBB (\d{2,3})$
0 голосов
/ 16 марта 2009

Вы говорите, что до YBB будет 6 цифр, но у показанного вами регулярного выражения есть только 3.

0 голосов
/ 16 марта 2009

Этот веб-инструмент может вам помочь: http://www.txt2re.com/

Для этого случая, в частности: http://www.txt2re.com/index-javascript.php3?s=090129%20YBB%20100&-23&12&19&13&16&18&20&7&-3&8&17&14&15

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