正则表达式匹配和分组

时间:2009-01-15 09:20:23

标签: regex

这是一个我希望在

上做正则表达式的示例字符串
101-nocola_conte_-_fuoco_fatuo_(koop_remix)

“101”中的第一个数字是光盘编号,接下来的2个数字是曲目编号。如何匹配曲目编号并忽略光盘编号(第一个数字)?

4 个答案:

答案 0 :(得分:3)

这样的东西
/^\d(\d\d)/

将匹配字符串开头的一位数字,然后捕获以下两位数字

答案 1 :(得分:1)

^\d(\d\d)

\前面可能需要(,具体取决于您打算运行正则表达式的环境(如vi(1))。

答案 2 :(得分:1)

你的意思是你不介意磁盘号是什么,但你想匹配,比如跟踪号码01?

在perl中,你会像这样匹配:“^ [0-9] 01. *”
或者更简单地说“^ .01。*” - 这意味着你甚至不介意第一个字符不是数字。

答案 3 :(得分:0)

哪种编程语言?对于shell,使用egrep的东西可以完成这项工作:

echo '101-nocola_conte_-_fuoco_fatuo_(koop_remix)' | egrep -o '^[0-9]{3}' | egrep -o '[0-9]{2}$'