2017-04-27 96 views
-1

我需要搜索每行中的多個單詞,並且如果所有單詞在一行中匹配,則打印該行。是否可以在re.search中使用'和'?

file.txt的

This is starting string. 
This is starting but different string. 
This is starting but the same string. 
This is a differnet string. 
This is a old string. 

i的以下方式所做的那樣。

import re 
with open("file.txt", "r") as in_file: 
    for line in in_file: 
     if (re.search('different',line)) and (re.search('string',line)): 
      print line 

但我需要這樣的東西:

if (re.search('different' and 'string',line)):: 
      print line 

我知道我們還是爲我們所用

if (re.search('different'|'string',line)):: 
       print line 

任何人可以幫助我以類似的方式使用「和」。

+0

你爲什麼要使用正則表達式呢? 「所有(在w('不同的','字符串'))中的w也行得通。否則:不,沒有'和'正則表達式選項。 –

+0

並且從重複:'re.search(r'(?=。* different)(?=。* string)',line)'也適用於案例。 –

+0

@ martijn-pieters:謝謝你只是記住了基礎知識。 – PAR

回答

1

您不需要在這裏使用模塊rein運營商將爲雅做這項工作。

if 'different' in line and 'string' in line: 
+0

謝謝。我有這個想法,這就是爲什麼我也試圖在正則表達式也一樣,並添加到我的文章。無論如何,所有([在['不同','字符串'])中的x的x行)完成了我的工作。再一次感謝你。 – PAR

1

在你的情況下,沒有必要使用正則表達式,你可以做'string' in line and 'different' in line,或all(x in line for x in ['different', 'string'])

+0

謝謝非常。我無法添加+1,但謝謝。 – PAR

相關問題