簡體   English   中英

用於文本的簡單過濾器Python腳本

[英]Simple Filter Python script for Text

我正在嘗試創建必須是一個簡單的過濾器函數的函數,該函數針對文本文件運行一個正則表達式並返回包含該特定正則表達式的所有單詞。

因此,例如,如果我想找到包含“ABC”的所有文字,我有名單: abcdebcexyzzyxabc腳本將返回abcdezyxabc

我在下面有一個腳本,但是我不確定它是否只是我失敗的正則表達式。 它只會返回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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM