2013-09-15 2 views

ответ

1

Вы можете использовать шаблон, как это:

BIOLOGIQUES\s+(\d+)\s+(\d+)\s+/\s+(\d+) 

Это будет соответствовать:

  • литерал BIOLOGIQUES
  • один или более символов пробела
  • один или несколько цифр, захваченного в группе 1
  • один или несколько символов пробела
  • один или более цифр, захваченного в группе 2
  • один или несколько пробельных символов
  • литерал /
  • один или несколько пробельных символов
  • одной или более цифр, захваченного в группе 3

Учитывая ваш пример строки, он будет захватывать 3433, 130906 и 3842 в группах 1, 2 и 3 соответственно. Не забывайте, что многие регулярные выражения двигатели использовать прямой слэш для разделения регулярных выражений литералов (например, JavaScript), так что вам, возможно, нужно бежать /:

/BIOLOGIQUES\s+(\d+)\s+(\d+)\s+\/\s+(\d+)/ 

Конечно, если все, что вы хотите, чтобы найти «последнее число после /» в строке намного проще. Это будет делать трюк:

/.*?(\d+)\D*$ 

Это будет соответствовать

  • буквальным /
  • ноль или более любых символов (не жадностью)
  • один или более цифр, захваченный в группе 1
  • нуль или более нецифровых символов
  • конец строки (или строка в многострочном режиме)
+0

Он работал как шарм для меня;) Спасибо – amorino

+0

Это будет соответствовать третьей последовательности цифр, а не «последний» один. – pguardiario

+0

@pguardiario Я предоставил простую альтернативу, которая бы удовлетворяла, если это действительно требование. –

1

Использование жадный квантор

BIOLOGIQUES.*/.*\s(\d+) 
+0

Это правильно, но BIOLOGIQUES, вероятно, не нужно. – pguardiario

+0

@pguardiario да действительно ... op должен указать на это, хотя ... – Anirudha

Смежные вопросы