将 , space 和 [A-z] 与可能的第二个逗号 RegEx 匹配

Match , space and [A-z] with possible second comma RegEx

我有文件名为

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。我的正则表达式只匹配最后一个逗号 space author 和 _

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

如何匹配可选的第一个逗号 space Authortwo。永远不会超过两个逗号,因为它产生

Authorone, et al._1999.pdf

而且我已经把它们清理干净了。

怎么样:

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

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

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

Demo

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