正则表达式:在文件的前面找到没有其他目标的单词吗?

时间:2019-02-05 16:02:33

标签: regex ansible

如何找到文件中前面没有特定目标文本的单词?

假设我要查找“ setting3” 不是,在右方括号“]”(表示标题)之前。以下文件由于[header]而无法通过测试:

[header] #can be named anything
setting1=True
setting2=various setting values, can include any type of text
setting3=1

但是具有孤立设置的文件应该匹配:

setting3=1

后面的内容将无法工作,因为我可能在标题和要查找的文本之间进行任意设置。由于我的条款跨越多行,因此变得比较棘手。

对于上下文,这是使用仅提供一个正则表达式行的工具(Ansible,我认为使用Python的正则表达式引擎)设置一条规则。我不相信我可以使用特殊设置(全局等)

1 个答案:

答案 0 :(得分:1)

您也许可以使用以下正则表达式:

^[^[]*setting3=1

它从文件开头一直到您要查找的设置匹配,但仅匹配非[的字符,这保证了它仅在以下情况下匹配您要查找的设置:它前面没有标头,因为它们包含[

请注意,这可能会错过一些应匹配的设置,尤其是如果该设置之前的注释包含[字符。