简体   繁体   English

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

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

I am writing a program where I have to check if all address in address-set contains speicific key-Word: 我正在编写一个程序,其中我必须检查地址集中的所有地址是否都包含特定的关键字-Word:

For Example A: 例如A:

set group address "Private-MT" "ABCD45-48/70-71" 设置组地址“ Private-MT”“ ABCD45-48 / 70-71”

set group address "Private-MT" "ABCD45-48/70-71" add "ABCD47" 设置组地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD47”

set group address "Private-MT" "ABCD45-48/70-71" add "ABCD48" 设置组地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD48”

set group address "Private-MT" "ABCD45-48/70-71" add "ABCD70" 设置组地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD70”

set group address "Private-MT" "ABCD45-48/70-71" add "ABCD71" 设置组地址“ Private-MT”“ ABCD45-48 / 70-71”添加“ ABCD71”

For Example B: 例如B:

set group address "Private-MT" "ABCD45-48/XYCD70-71" 设置组地址“ Private-MT”“ ABCD45-48 / XYCD70-71”

set group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD47" 设置组地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD47”

set group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD48" 设置组地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD48”

set group address "Private-MT" "ABCD45-48/XYCD70-71" add "XYCD70" 设置组地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ XYCD70”

set group address "Private-MT" "ABCD45-48/XYCD70-71" add "XYCD71" 设置组地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ XYCD71”

in this example, the Address-set name is "ABCD45-48/70-71", so before I delete this address set completely, I need to check that all the members for this address set must have ABCD in there name. 在此示例中,地址集名称为“ ABCD45-48 / 70-71”,因此,在我完全删除该地址集之前,需要检查该地址集的所有成员的名称中都必须包含ABCD。

if they all have ABCD in there name delete entire address-set 如果他们那里都有ABCD,则删除整个地址集

OUTPUT for A: A的输出:

unset group address "Private-MT" "ABCD45-48/70-71" 未设置组地址“ Private-MT”“ ABCD45-48 / 70-71”

else delete specific line. 否则删除特定行。

OUTPUT for B: B的输出:

unset group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD47" 未设置组地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD47”

unset group address "Private-MT" "ABCD45-48/XYCD70-71" add "ABCD48" 未设置组地址“ Private-MT”“ ABCD45-48 / XYCD70-71”添加“ ABCD48”

Your question isn't really clear, but I will ask your question in the title. 您的问题尚不清楚,但是我会在标题中提出您的问题。 If you have a string and you like to search a sub-string you can only use 如果您有字符串,并且想搜索子字符串,则只能使用

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

another way is to use regular expression, here the documentations re python 另一种方法是使用正则表达式,这里的文档是python

next time please share your script to help everyone to understand your problem ;) 下次请分享您的脚本,以帮助所有人了解您的问题;)

EDIT 编辑

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()

Tried with this file 尝试过此文件

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"

the Output was : 输出为:

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']

you can edit the script and store infos because I did a print to show you that's works ;) 您可以编辑脚本并存储信息,因为我进行了打印以显示效果;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何使用正则表达式在PDF中搜索括号内的所有单词除了特定的单词集外? - How can I use a regex to search a PDF for all words within parentheses EXCEPT for a specific set of words? 有没有办法可以将某些特定单词替换为某些特定单词? - Is there a ways I can replace some specific words to some specific words? 如果A列包含某些特定的字符串或A列中句子之外的单词集,则如何更新B列的值 - How to update value of column B if column A contains some specific string or set of words out of sentence in column A 如何从用户输入中搜索单词列表的文本文件,并打印包含这些单词的行? - how can i search a text file of list of words from user input and print the line which contains these words? 我如何通过pytesseract搜索图像中的特定字母/单词 - How can i search specific letters / words in image by pytesseract 如何从包含特定字母的列表中打印出单词? 我知道如何处理以特定字母开头但不以 BETWEEN 开头的单词 - How can I print out words from a list that contains a particular letter? I know what to do with words starting with specific letter but not in BETWEEN 如何解析Json文件并搜索特定的关键词集? - How to Parse a Json file and search for specific set of key words? 如何搜索包含特定数据对的数据帧子组? - How can I search for sub-groups of dataframe that contains specific pairs of data? 我怎么能算出特定的二元词呢? - how can I count the specific bigram words? 在 .txt 文件中搜索特定的词组 - search specific set of words in .txt file
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM