我有如下输入字符串
1)ISBN_9781338034424_001_S_r1.mp3
2)001_Ch001_987373737.mp3
3)这是测试001 Chap01.mp3
4)Anger_Cha01_001.mp3
我使用下面的正则表达式选择"001"进入TrackNumber组
(?:(?<TrackNumber>\d{3})|(?<Revision>r\d{1}))(?![a-zA-Z])
Run Code Online (Sandbox Code Playgroud)
然而,上面还将"978","133","803"等拾入TrackNumber组(例1和2).
如何更改上述正则表达式以仅将"001"选为TrackNumber?
-Alan-
以下正则表达式将匹配所有示例中的 3 位曲目编号:
(?<=\b|_)(?<TrackNumber>\d{3})(?=\b|_)
Run Code Online (Sandbox Code Playgroud)
(?<=\b|_)正向后看,前一个字符是单词边界(即空格)或下划线(?=\b|_)正向前视,下一个字符是单词边界(即空格)或下划线