gpt4 book ai didi

python - for循环中列表元素的正则表达式

转载 作者:太空宇宙 更新时间:2023-11-04 00:46:48 26 4
gpt4 key购买 nike

我有一个脚本可以搜索配置文件并从另一个列表中找到所有匹配的字符串,如下所示:

dstn_dir = "C:/xxxxxx/foobar"
dst_list =[]
files = [fn for fn in os.listdir(dstn_dir)if fn.endswith('txt')]
dst_list = []
for file in files:
parse = CiscoConfParse(dstn_dir+'/'+file)
for sfarm in search_str:
int_objs = parse.find_all_children(sfarm)
if len(int_objs) > 0:
dst_list.append(["\n","#" *40,file + " " + sfarm,"#" *40])
dst_list.append(int_objs)

我需要更改这部分代码:

 for sfarm in search_str:
int_objs = parse.find_all_children(sfarm)

search_str 是一个包含类似于 ['xrout:55','old:23'] 和许多其他字符串的列表。

因此它只会从我在 sfarm 中迭代的列表中找到以字符串结尾的条目。我的理解是,这需要我使用 re 并匹配 sfarm$ 之类的东西,但我不确定如何在循环中执行此操作。

我说 sfarm 是一个可迭代对象对吗?如果是这样,我需要知道如何在此上下文中对可迭代对象进行正则表达式。

最佳答案

python 中的字符串是可迭代的,因此 sfarm 是可迭代的,但在这种情况下意义不大。从读什么CiscoConfParse.find_all_children()确实如此,很明显您的 sfarmlinespec,它是一个正则表达式字符串。您不需要在这里显式使用 re 模块;只需传递与 '$' 连接的 sfarm:

search_string = ['xrout:55','old:23']
...
for sfarm in search_str:
int_objs = parse.find_all_children(sfarm + '$') # one of many ways to concat
...

关于python - for循环中列表元素的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39161495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com