正在寻找正则表达式,以便从电子书文件名中查找和删除旧的库参考代码。 代码格式为:
打开方括号,一到三个大写字母,一个连字符,一到四个数字,关闭方括号(OR,逗号,相同格式的第二个代码,然后是方括号)。
一些例子:
[MHS-679]
[MB-376]
[R-1167]
[HRS-1288]
[HCC-29]
[SD-1077, MD-1096]
[HP-2225, R-76]
我正在使用File Renamer。我是regex的新手,所以还没有尝试过这方面的任何事情。感谢。
答案 0 :(得分:0)
/\[(([A-Z]{1,3}\-[0-9]{1,4}),\s*)*([A-Z]{1,3}\-[0-9]{1,4})\]/g
我通过在单个引用中识别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})?]