首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多次在文件中替换Powershell

多次在文件中替换Powershell
EN

Stack Overflow用户
提问于 2019-03-06 13:20:36
回答 1查看 94关注 0票数 0

我在一个配置文件中得到了类似8-9次的行。

代码语言:javascript
复制
ProxyPass http://servername.de.domain:randomport/randomword

我构建了以下正则表达式:

代码语言:javascript
复制
(?:ProxyPass)[[:blank:]](?=http)(.*)(?=:)

我想编辑的部分是服务器名和域..。我用正则表达式得到匹配,但是我不能让powershell命令工作。我谈到:

代码语言:javascript
复制
(Get-Content $file) -replace $regexProxyPass1, "    ProxyPass http://$serverName.$domain" | Set-Content $file
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-06 13:46:52

.NET regex不支持POSIX字符类。[[:blank:]]应替换为\s

请参阅完整的regex替换片段:

代码语言:javascript
复制
PS> $domain = 'mydomain'
PS> $serverName = 'myservername'
PS> $s = 'ProxyPass http://servername.de.domain:randomport/randomword'
PS> $s -replace '(ProxyPass\s+http://)[^:]+', "`$1$serverName.$domain"
ProxyPass http://myservername.mydomain:randomport/randomword

详细信息

  • (ProxyPass\s+http://) -第1组:ProxyPass,1+空格,http://
  • [^:]+ -1或更多字符( :除外)

.NET regex演示

替换模式中的$1代表第1组中捕获的值。请注意转义-- `$1 --这在这里是必要的,因为双引用的文字可能包含外推变量。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55024113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档