为其他两个字符串编写字符串的正则表达式代码

时间:2017-03-07 15:13:59

标签: python regex

我正在尝试为以下想法编写正则表达式搜索代码 -

sentence one BEFORE {sentence2 AND sentence 3}

3个短语sentence onesentence2sentence 3分别提供给代码。

我可以轻松地做到 -

re.search(sentence one.*?sentence2) AND re.search(sentence one.*?sentence 3)

但我在想是否有办法在一个正则表达式中表达原始想法。我正在使用Python。

编辑 - 只是想提及所有短语都不一定存在。为了澄清,由此产生的正则表达式将是一个规则。如果文件中存在sentence2sentence 3,则它应满足它,如果两者都存在,那么也是如此。如果文件中不存在sentence one,那么它将毫无用处。

1 个答案:

答案 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)

但显然这种可读性要低得多,而且不太通用。

请注意,所有这些都假定句子不相交。