RegExp для поиска совпадения по шаблону

Написал регулярку для проверки строки такого вида:

100_Some_string_there_v12

Сама регулярка /(\d+_)|(_v\d+)/ находит как и нужно 100_ и _v12 (я их в дальнейшем откидываю и использую оставшуюся строку Some_string_there).

Но как быть если в строке, которую мне нужно получить будет число?

Например входная строка будет 100_7_Some_string_11_there_2001_v12, из которой мне надо получить центральную часть (7_Some_string_11_there_2001).

Подскажите как написать регулярку для такой проверки.


Ответы (1 шт):

Автор решения: Wiktor Stribiżew

Используйте

^\d+_|_v\d+$

См. пример работы выражения

Здесь ^ обозначает начало строки, а $ — её конец.

Пример кода на PHP:

preg_replace('~^\d+_|_v\d+$~', '', '100_7_Some_string_11_there_2001_v12')
→ Ссылка