[英]Simple Filter Python script for Text
我正在嘗試創建必須是一個簡單的過濾器函數的函數,該函數針對文本文件運行一個正則表達式並返回包含該特定正則表達式的所有單詞。
因此,例如,如果我想找到包含“ABC”的所有文字,我有名單: abcde
, bce
, xyz
和zyxabc
腳本將返回abcde
和zyxabc
。
我在下面有一個腳本,但是我不確定它是否只是我失敗的正則表達式。 它只會返回abc兩次,而不是完整的單詞。 謝謝。
import re
text = open("test.txt", "r")
regex = re.compile(r'(abc)')
for line in text:
target = regex.findall(line)
for word in target:
print word
我認為您不需要正則表達式來執行此任務,您只需split
行即可創建單詞列表,然后遍歷單詞列表並in
operator中使用:
with open("test.txt") as f :
for line in f:
for w in line.split():
if 'abc' in w :
print w
您的方法正確,但是您可以將Regex更改為r'.*abc.*'
regex = re.compile(r'.*abc.*')
這將匹配其中所有帶有abc
的行The wildcards
。*`將匹配該行中的所有字母。
更改了特定行的小演示將打印
abcde
zyxabc
注意,正如Kasra所提到的 ,在這種情況下最好in
運算符中使用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.