1

Привет Я новичок в регулярных выражениях я пытаюсь соответствовать шаблону для сильфона линииКак сопоставить буквенно-цифровой шаблон в Regex?

T071108452T 42D896D5O 3587 

Я хочу, чтобы соответствовать шаблону до T071108452T 42D896D5 и после этого я хочу, символ «O», чтобы соответствовать я пытался что-то как этот

(T)(\d{9})(T)(\d{0,19}\s{0,19}\w{0,19})O 

, но она содержит «O» уже с \ ш {0,19}, и я хочу, чтобы соответствовать «O» в качестве специфического характера любой помощи будет большое спасибо.

Что касается больше значения

T065000090T203 93 5797 9O 4037 
T325170628T0108626004D18O01054 
T071108452T 42D896D5O 3587 

Так я хочу, чтобы соответствовать «T» - затем 9 цифр затем - «Т», а затем любая комбинация, которая является буквенно-цифровым до - «O»

+0

Является ли '42D896D5' всегда такой же максимальной длины? Если это так, вы можете использовать '\ w {0,8} (\ w)' для соответствия последнему 'O' в вашем примере как группе. –

+1

Я не уверен, что ваш вопрос очень ясен. Есть ли у вас больше примеров шаблонов для соответствия и отклонения? – Jerry

+1

Не могли бы вы рассказать о том, что вы пытаетесь сопоставить? '(\ d {0,19} \ s {0,19} \ w {0,19})' соответствует 0-19 цифрам, за которыми следуют 0-19 пробелов, за которыми следуют 0-19 слов. Я не думаю, что это то, чего ты хочешь. –

ответ

0

Допустим, вы имеете следующую строку:

T071108452T 42D896D5O 3587O 
Note that I added an extra O --^ 

Если вы хотите, чтобы соответствовать до последнего O, вы можете использовать следующие pattern: [\w\s]+(?=O)

Это означает:

  • [\w\s]+ спички слова и пробелы один или несколько раз, жадный.
  • (?=O) Zerowidth опережения утверждение, чтобы соответствовать, пока O не найдено

Теперь, если вы хотите, чтобы соответствовать до первого совпадения O, то вы можете использовать следующие pattern: [\w\s]+?(?=O). Обратите внимание на добавленный знак вопроса, чтобы он соответствовал неровности.

Примечание:\w также будет соответствовать подчеркивание, вы можете заменить [\w\s] на [^\W\S_], чтобы предотвратить это. Обратите внимание на отрицание и верхние буквы.

+1

Спасибо, помощник получил его. –