我通过正则表达式匹配日期。它对某些人来说工作得很好,但对另一些人来说,它根本不起作用,但我不明白为什么。
我在 Ruby 中为德语做这个:
def extract_dates
months = ["Januar", "Februar", "Maerz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
days = ["Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag", "Sonntag"]
self.content.scan(/([0-9]{1,2}\.\s?[#{months.join("|")}]\s?[0-9]{4})/)
end
我在以下文本上对其进行了测试:http: //de.wikipedia.org/wiki/Inkunabel,我是随机选择的。它返回:
=> ["18. Juli 1471", "11. Februar 1486", "14. August 1473", "1. Januar 1501", "8. Januar 2008", "23. Mai 2006"]
匹配是正确的,但它遗漏了"31. Dezember 1500"
哪个,就我的目的而言,应该匹配但不匹配。为什么不匹配"31. Dezember 1500"
?