gpt4 book ai didi

python - 捕获所有出现的模式,直到 Python 中某个单词第一次出现

转载 作者:行者123 更新时间:2023-12-01 00:51:31 24 4
gpt4 key购买 nike

我有一个包含以下数据的文件:

define host { 
......
..... {3,9}
}

define host {
.......
...... text
}

define host {
.......
....... {3}
}

我想使用 python 正则表达式捕获所有主机定义并将它们存储在列表中(例如 ['define host {....}', 'define host {.....}',.

re.findall('define\ +host[^}]*', cfg_file, re.Multiline|re.DOTALL)
re.finall('define\ +host.+?(?:define\ +host)', cfg_file,re.Multiline|re.DOTALL)

以上对我来说都不起作用,直到第一次出现单词而不是字符,如 [^}]* --> [^word]* .

结果应该是一个包含所有主机定义的列表:

['define host {...{}..}', 'define host {...}', 'define host {...}']

最佳答案

一个相当幼稚的解决方案是只匹配文件中从 define host 开始到下一个 define host 的所有内容。这不会检查大括号,但也不会出现与嵌套大括号匹配的复杂情况。

define\s*host\s*((?!define\s*host).)*

但是,如果存在 define host 作为主机定义的一部分显示的合理情况,您可能需要查看正则表达式以外的其他内容,因为它们不是正确的工具用于解析嵌套结构。

关于python - 捕获所有出现的模式,直到 Python 中某个单词第一次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56535254/

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