如何找到文件中前面没有特定目标文本的单词?
假设我要查找“ 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的正则表达式引擎)设置一条规则。我不相信我可以使用特殊设置(全局等)
答案 0 :(得分:1)
您也许可以使用以下正则表达式:
^[^[]*setting3=1
它从文件开头一直到您要查找的设置匹配,但仅匹配非[
的字符,这保证了它仅在以下情况下匹配您要查找的设置:它前面没有标头,因为它们包含[
。
请注意,这可能会错过一些应匹配的设置,尤其是如果该设置之前的注释包含[
字符。