匹配,空格和[A-z]可能的第二个逗号RegEx

时间:2016-06-02 09:29:17

标签: ruby regex rename

我有名为

的文件
Author_1999.pdf
Authorone, Authortwo_1999.pdf
Authorone, Authortwo, Authorthree.pdf   
Arian, Nachmias, Amir_2002.pdf
Author, Review, Source_2015(2).pdf
Avraham, Hacohen_1930.pdf

由参考经理Mendeley制作。我需要的是Authorone1999.pdf或Authorone1999(2).pdf格式的所有内容。我有正则表达式只匹配最后一个逗号空间作者和_

/(, )+[A-z ]*,?[A-z]*,?-?[A-z]*_/

enter image description here

如何匹配可选的第一个逗号空间Authortwo。从来没有超过两个逗号,因为它产生了

Authorone, et al._1999.pdf

我已经清理了那些。

2 个答案:

答案 0 :(得分:1)

怎么样:

/, +[A-Za-z-]+(?:, [A-Za-z-]+)?(?:, [A-Za-z-]+)?_/

答案 1 :(得分:1)

这是一个简单的解决方案:

/^(?<author>[a-z-]+).*_(?<year>[\d()]+)/i

Demo

这会将authoryear存储到两个命名的捕获组中。