我有一个文件,文件的每一行都有以下格式 由空格分隔的单词:
word1 word2 word3 word4 word5 ...
我想检查每行是否找到2个单词实例(每行都有行加扰)
例如,如果我有以下行
x y z w f
y z x f w
我想检查在我应用此正则表达式的每一行上是否找到x和z:
X * Z |。。Z * X
我的问题是有这样的正则表达式的优化版本吗?
答案 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