簡體   English   中英

如何搜索地址集中是否包含某些特定單詞

[英]How Can I search if a Address Set Contains some specific Words

我正在編寫一個程序,其中我必須檢查地址集中的所有地址是否都包含特定的關鍵字-Word:

例如A:

設置組地址“ Private-MT”“ ABCD45-48 / 70-71”

設置組地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD47”

設置組地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD48”

設置組地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD70”

設置組地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD71”

例如B:

設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”

設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD47”

設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD48”

設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ XYCD70”

設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ XYCD71”

在此示例中,地址集名稱為“ ABCD45-48 / 70-71”,因此,在我完全刪除該地址集之前,需要檢查該地址集的所有成員的名稱中都必須包含ABCD。

如果他們那里都有ABCD,則刪除整個地址集

A的輸出:

未設置組地址“ Private-MT”“ ABCD45-48 / 70-71”

否則刪除特定行。

B的輸出:

未設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD47”

未設置組地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD48”

您的問題尚不清楚,但是我會在標題中提出您的問題。 如果您有字符串,並且想搜索子字符串,則只能使用

if substring in string:
     #do what you want to do

另一種方法是使用正則表達式,這里的文檔是python

下次請分享您的腳本,以幫助所有人了解您的問題;)

編輯

filename = "test.text"
import re
def splitAddresses(data):
    addresses=[]
    l=[]
    pattern=re.compile("^[GROUP]+[0-9]+[:]$")
    for element in data:
        isAmatch=pattern.match(element)
        if isAmatch==None:
            l.append(element)
        else:
            addresses.append(l)
            l=[]
    addresses.append(l)
    return(addresses[1:])
def parseAddress():
    with open(filename) as f:
        data = f.readlines()
    addresses=splitAddresses(data)
    for element in addresses:
        prefix=element[0][32:36]
        length_data=len(element)
        for address in element[1:]:
            if address.count(prefix)!=2:
                element.remove(address)
        new_length = len(element)
        if new_length==length_data:
            print(element[0])
        else:
            print(element[1:])
parseAddress()

嘗試過此文件

GROUP1:
set group address "Private-MT" "ABCD45-48/70-71"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD70"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD71"
GROUP2:
set group address "Private-MT" "ABCD45-48/70-71"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"
set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"
set group address "Private-MT" "ABCD45-48/70-71" add "XYCD70"
set group address "Private-MT" "ABCD45-48/70-71" add "XYCD71"

輸出為:

set group address "Private-MT" "ABCD45-48/70-71"

['set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47"\n', 'set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48"\n']

您可以編輯腳本並存儲信息,因為我進行了打印以顯示效果;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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