gpt4 book ai didi

regex - 仅当行不是以某个特定字符开头时,powershell才替换文件中的行

转载 作者:行者123 更新时间:2023-12-03 00:42:20 25 4
gpt4 key购买 nike

我有这行powershell正则表达式来替换配置文件中的一行。想法是替换任何包含单词“Listen”的行,然后立即替换任何数字。

(gc  .\path\httpd.conf) -replace  "Listen \d+", "Listen 999"

您可能会猜到,它正在尝试以编程方式更改配置文件中的端口声明,用“999”替换任何现有数字。

问题是,替换发生了,但也影响到如下行:
#Listen 111
#Listen 222
# Listen 333

这些注释行不应匹配/替换。

我该如何实现?

最佳答案

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

^[^#]*Listen \d+

Demo

#发生之前的行开始起,这将与任何不包含注释 Listen \d+字符的行匹配。您更新的代码:
(gc  .\path\httpd.conf) -replace  "^[^#]*Listen \d+", "Listen 999"

关于regex - 仅当行不是以某个特定字符开头时,powershell才替换文件中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58250049/

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