Регулярное совпадение и группировка
Вот пример строки, которую я хочу сделать регулярное выражение на
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}$'