我强烈认为,您应该尝试使用多个正则表达式来处理数据,而不是尝试使用单个正则表达式来处理所有事情。这样,您就有了一个更加灵活的系统,因为添加新的日期格式要比试图编辑一个难以阅读的regex使其更加模糊容易得多。在
考虑到您将正则表达式与编程语言一起使用,您可以使用代码生成正则表达式,这样就不会重复字符串。作为一个例子,考虑一下这个快速、不完整和肮脏的片段:import re
monthsShort="Jan|Feb"
monthsLong="January|February"
months="(" + monthsShort + "|" + monthsLong + ")"
separators = "[/-]"
days = "\d{2}"
years = "\d{4}"
regex1 = months + separators + days
regex2 = days + separators + months
print(re.search(regex1,"Jan/01"))
最后,我有几个正则表达式可以用来匹配两种日期格式。完成正则表达式很简单,添加更多格式也很容易。整件事比较容易读。当然,在连接正则表达式片段时必须小心(因为您可能会忘记括号之类的东西),但我认为这比处理晦涩的正则表达式要容易得多。在
编辑:我忘了提一下:在生成正则表达式之后,可以将它们添加到列表中,这样您就可以在一个循环中迭代它们并将它们应用到文本中。或者,如果您真的需要,您可以生成一个包含所有正则表达式的正则表达式(通过使用括号和竖线),并用一个语句应用它们。在