正则表达式匹配另一个单词之前或另一个单词之后的单词

时间:2014-11-27 18:24:19

标签: python regex

我有一个文件,文件的每一行都有以下格式  由空格分隔的单词:

word1 word2 word3 word4 word5 ...

我想检查每行是否找到2个单词实例(每行都有行加扰)

例如,如果我有以下行

    x y z w f

    y z x f w

我想检查在我应用此正则表达式的每一行上是否找到x和z:

X * Z |。。Z * X

我的问题是有这样的正则表达式的优化版本吗?

2 个答案:

答案 0 :(得分:0)

无论你写的是什么都很好。这是在同一行上找到多个字符串的另一种方法:

^.*(string1).*(string2).*$

答案 1 :(得分:0)

你不需要正则表达式,当你阅读你的行时,将它们分开以得到你的单词列表。然后检查in操作,并使用and来实现拖曳条件,例如:

>>> def finder(s):
...     l=s.split()
...     if 'x' in l and 'z' in l :
...         print 'OK'
...     else :
...         print 'Wrong'
... 

>>> s="x y p w f"
>>> finder(s)
Wrong
>>> s="x y z w f"
>>> finder(s)
OK

请注意,您可以对字符串使用in操作,但是当字符串连接时,您可能将字符串作为另一个字中的子字符串,请参阅下面的示例:

>>> s="this is a test " 
>>> 'est' in s
True