我正在尝试从包含使用正则表达式的几篇文章的文件中提取场地。我知道场地以 For/From 开头,然后是日期,该日期以一周中的某一天开头,如果缺少日期,则以作者姓名开头,我编写了以下正则表达式来匹配场地,但它始终匹配所有内容,直到作者的名字,这意味着如果该文章有日期,日期也会出现在场地中。
"""((?<=\n)(?:(?:\bFrom\b)|(?:\bFor\b)).*?(?=(?:(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday)|(?:[A-Z]+))))""".r
如果遇到我的代码为什么不匹配日期,而是继续匹配作者姓名 [AZ]。
输入:“国家间敌对行动的后果
来自纽约邮报。
1787 年 11 月 20 日,星期二。
汉密尔顿
致纽约州人民:”
“1787 年 11 月 20 日,星期二”这一行。是可选的,可能不会出现在所有文章中。我希望输出为“来自纽约邮包”。对于没有日期的文章,我得到了正确的输出,但是我得到了“来自纽约邮包”的输出。
1787 年 11 月 20 日,星期二。”查看包含日期的文章。