【发布时间】:2020-07-03 03:52:56
【问题描述】:
如果配置无效,我想将“keepalive”替换为“keepalive 10 60”,如果未找到“keepalive”,则插入“keepalive 10 60”。
到目前为止,我已经想出了这个,但它仍然会插入每个空白行,而“keepalive”正在被发现和替换:
^keepalive(?!(\s[[:digit:]]{1,3}){2}).*\n|((?<!keepalive)^$(?!keepalive))
场景 1:
keepalive 60
resolv-retry infinite
预期:
keepalive 60 90
resolv-retry infinite
结果:
keepalive 60 90
keepalive 60 90
resolv-retry infinite
场景 2:
resolv-retry infinite
预期:
keepalive 60 90
resolv-retry infinite
结果:
keepalive 60 90
keepalive 60 90
resolv-retry infinite
我对正则表达式非常缺乏经验,非常感谢任何指导和提示!
【问题讨论】:
-
对于给定的场景:regex101.com/r/0fgOWA/9
-
谢谢,但我也想用“resolv-retry infinite”做同样的事情,所以它不适合我的用例。问题似乎是(负)Lookahead/Lookbehind 不会扫描整个文件。
-
和以前一样的问题,但感谢您的努力。
标签: regex regex-negation