【发布时间】:2016-10-01 22:53:42
【问题描述】:
我有文件名为
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]*_/
如何在可选的第一个逗号空格 Authortwo 上进行匹配。逗号永远不会超过两个,因为它产生了
Authorone, et al._1999.pdf
我已经把它们清理干净了。
【问题讨论】:
-
Authorone, Authortwo, Authorthree.pdf甚至没有一年。如何处理? -
由于 [A-z] 末尾没有“_”要删除,我不希望它被匹配。只有少数这样的,我将不得不手工完成。仅匹配结束年份
files = Dir['*'].select {|x| x =~ /d*.pdf/}的文件 -
不要使用正则表达式,使用rubular来测试Ruby正则表达式。