import re
regex = r"[^.?!-]*(?<=[.?\s!-])\b(pfs)\b(?=[\s.?!-])[^.?!-]*[.?!-]"
test_str = "pfs alert conf . it is unlikely that we will sign it - pfs of $ 950 filed to driver - we are gathering information"
subst = ""
result = re.sub(regex, subst, test_str, 0, re.IGNORECASE | re.MULTILINE)
if result:
print (result)
正如我们所看到的,test_str有两个关键字为“pfs”的句子。然而,上面的python代码只能提取第二句话'pfs of $ 950 filed to driver',如何修改它来提取‘pfs alert conf’呢?
发布于 2018-07-12 03:56:11
第一个pfs
位于行的开头,但是在您的正向回看中,您将1个字符与(?<=[.?\s!-])
匹配,您可以使用交替来断言行的开头^
或[^.?!-]*(?<=[.?\s!-])
(?:^|[^.?!-]*(?<=[.?\s!-]))\bpfs\b(?=[\s.?!-])[^.?!-]*[.?!-]
https://stackoverflow.com/questions/51293154
复制相似问题