正则表达式在电子书文件名中查找旧库引用代码

时间:2014-09-08 22:37:32

标签: regex

正在寻找正则表达式,以便从电子书文件名中查找和删除旧的库参考代码。 代码格式为:

打开方括号,一到三个大写字母,一个连字符,一到四个数字,关闭方括号(OR,逗号,相同格式的第二个代码,然后是方括号)。

一些例子:

[MHS-679]
[MB-376]
[R-1167]
[HRS-1288]
[HCC-29]
[SD-1077, MD-1096]
[HP-2225, R-76]

我正在使用File Renamer。我是regex的新手,所以还没有尝试过这方面的任何事情。感谢。

3 个答案:

答案 0 :(得分:0)

/\[(([A-Z]{1,3}\-[0-9]{1,4}),\s*)*([A-Z]{1,3}\-[0-9]{1,4})\]/g

Testing page here

我通过在单个引用中识别3个或更多代码的方式使其足够通用。如果确实无意,请将中间的)*(替换为)?(

答案 1 :(得分:0)

此正则表达式与您的目标匹配:

(?<=\[)[A-Z]{1,3}-\d{1,4}(?:, *[A-Z]{1,3}-\d{1,4})?(?=\])

请参阅demo

这个正则表达式使用环绕声来断言但不捕获方括号,因此整个匹配是你的目标(即组0)。

答案 2 :(得分:0)

您可以使用以下正则表达式,这将匹配单个或双重代码引用。

\[[A-Z]{1,3}-[0-9]{1,4}(, *[A-Z]{1,3}-[0-9]{1,4})?]