我有一个巨大的文字墙,我需要在其中搜索出生或死亡日期,日期通常采用以下格式:
更多的文字。1942 年 12 月 5日出生于 萨姆纳和更多文本
或者
一些文本于1922 年 8 月 8日出生于州城市,更多文本
或者
一些文本于2010 年 11 月 3 日星期三死亡,更多文本
或者
一些文字已于 2008 年 12 月 19 日星期五去世 更多文字
或者
一些文本于 2007 年 1 月 11 日死亡,更多文本
简而言之,日期通常在出生词之后几个词。
我认为获得此日期的最佳方法是使用正则表达式,但如果我在这里错了,请纠正我。
这是我想出的获取日期的方法,但我还远远没有得到日期:
(?=born\s|died\s|passed\saway\s)(\w+.*)(\w+\s\d+,\s\d+)
问题是我的正则表达式不能完全工作,它会吃掉月份这个词,我该如何纠正这个或者有更好的正则表达式或方法来做到这一点?
我知道我可以使用以下内容仅获取日期,但我还需要知道该事件:
(\w+\s[0-9]{1,2},\s[0-9]{2,4})