如果一个地址集包含一些特定的单词,我如何搜索

2024-05-14 17:12:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个程序,我必须检查地址集中的所有地址是否都包含特定的关键字:

例如A:

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"

例如B:

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

set group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD47"

set group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD48"

set group address "Private-MT" "ABCD45-48/XYCD70-71" add "XYCD70"

set group address "Private-MT" "ABCD45-48/XYCD70-71" add "XYCD71"

在本例中,地址集的名称是“ABCD45-48/70-71”,因此在完全删除此地址集之前,我需要检查此地址集的所有成员的名称中必须包含ABCD。你知道吗

如果他们都有ABCD在那里的名称删除整个地址集

A的输出:

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

否则删除特定行。你知道吗

B的输出:

unset group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD47"

unset group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD48"


Tags: 程序名称addaddress地址groupprivateabcd
1条回答
网友
1楼 · 发布于 2024-05-14 17:12:38

你的问题不太清楚,但我会在标题里问你的问题。如果您有一个字符串,并且希望搜索子字符串,则只能使用

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

另一种方法是使用正则表达式,这里是文档re 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']

您可以编辑脚本并存储信息,因为我做了一个打印,向您展示了它的工作原理;)

相关问题 更多 >

    热门问题