在下面的文本中,我试图识别该文本也属于哪个家庭成员。评论将在家庭成员之前进行。.因此,在下面的示例中,我仅应确定母亲..父亲没有评论
some stuf Father
more stuff Mother
Comment: Deceased
搜索并尝试使用否定的环视效果后,我似乎仍然无法使其正常工作。例如,。
Father(?!Mother).*Comment:\s?(deceased|died)
此正则表达式不应找到匹配项。但是最终会匹配
Father
more stuff Mother
Comment: deceased
如果我切换了“父亲”和“父亲”,则它正确匹配。但是由于注释不属于“父亲”,因此本例中不需要匹配
答案 0 :(得分:1)
您必须扩展否定的前瞻(?!.*?Mother)
来匹配任何字符0次以上,否则它将断言直接在右边的不是母亲。
在这种情况下,母亲不会紧随父亲之后,因此断言成功,并且.*Comment
这部分将一直匹配,直到最后出现的Comment匹配为止。
您的模式可能如下:
Father(?!.*?Mother).*Comment:\s?(deceased|died)
也许您也可以使“评论”的点星法也不要贪心,以防止过度匹配:
.*?Comment