Регулярное совпадение и группировка

Вот пример строки, которую я хочу сделать регулярное выражение на

101-nocola_conte_-_fuoco_fatuo_(koop_remix)

Первая цифра в "101" - это номер диска, а следующие 2 цифры - это номера дорожек. Как мне сопоставить номера дорожек и игнорировать номер диска (первая цифра)?

4 ответа

Решение

Ты имеешь в виду, что ты не против того, что номер диска, но ты хочешь соответствовать, скажем, дорожке номер 01?

В Perl вы можете подобрать это так: "^[0-9]01.*"
или, проще говоря, "^.01.*" - это означает, что вы даже не возражаете, если первый символ не является цифрой.

Что-то вроде

/^\d(\d\d)/

Будет соответствовать одна цифра в начале строки, а затем захватить следующие две цифры

^\d(\d\d)

Вам может понадобиться \ напротив ( в зависимости от того, в какой среде вы собираетесь запустить регулярное выражение (например, vi(1)).

Какой язык программирования? Для оболочки что-то с egrep сделает работу:

echo '101-nocola_conte_-_fuoco_fatuo_(koop_remix)' | egrep -o '^[0-9]{3}' | egrep -o '[0-9]{2}$'
Другие вопросы по тегам