我正在尝试为以下想法编写正则表达式搜索代码 -
sentence one BEFORE {sentence2 AND sentence 3}
3个短语sentence one
,sentence2
和sentence 3
分别提供给代码。
我可以轻松地做到 -
re.search(sentence one.*?sentence2) AND re.search(sentence one.*?sentence 3)
,
但我在想是否有办法在一个正则表达式中表达原始想法。我正在使用Python。
编辑 - 只是想提及所有短语都不一定存在。为了澄清,由此产生的正则表达式将是一个规则。如果文件中存在sentence2
或sentence 3
,则它应满足它,如果两者都存在,那么也是如此。如果文件中不存在sentence one
,那么它将毫无用处。
答案 0 :(得分:1)
我认为最清楚的方法是使用控制流程来实现它。
你可以按照
的方式做点什么sentence 1 then (sentence 2 then sentence 3 or sentence 3 then sentence 2)
即
sentence one.*?(?:sentence two.*?sentence three|sentence three.*?sentence two)
但显然这种可读性要低得多,而且不太通用。
请注意,所有这些都假定句子不相交。