我有这行powershell正则表达式来替换配置文件中的一行。想法是替换任何包含单词“ Listen”的行,然后立即替换任何数字。
(gc .\path\httpd.conf) -replace "Listen \d+", "Listen 999"
您可能会猜到,它正在尝试以编程方式更改配置文件中的端口声明,用“ 999”替换任何现有数字。
问题是,替换发生了,但也影响到如下行:
#Listen 111
#Listen 222
# Listen 333
这些注释行不应匹配/替换。
我该如何实现?
您可以使用以下正则表达式模式:
^[^#]*Listen \d+
#
从出现该行之前开始的行开始,任何匹配不包含注释字符的行都将匹配Listen \d+
。您更新的代码:
(gc .\path\httpd.conf) -replace "^[^#]*Listen \d+", "Listen 999"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句