繁体   English   中英

Powershell 获取内容 -> 参数“-replace”

[英]Powershell Get-Content -> Parameter "-replace"

你好!

  • “-replace”参数是否绑定到cmdlet“Get-Content” 通过谷歌搜索,我在许多不同的环境中找到了它
  • 为什么官方文档中没有显示-replace 参数 获取内容微软

问题:

文本近似如下:

颜色 sit amet, consetetur sadipscing elitr, sed diam nonumy LoremIpsum-648648sdfsd

我想通过正则表达式将 substring 从“LoremIpsum-xxx”替换为“Loremipsum”

这是我的第一次尝试:

 (Get-Content "C:\File.cmd") -replace "[regex]::matches("LoremIpsum-(.*?)")" | Out-File -encoding ASCII C:\File.cmd

-replace不是Get-Content参数,它是一个运算符,允许使用正则表达式查找指定模式,然后删除匹配的文本或将其替换为另一个。

在你的情况下,你可以使用

(Get-Content "C:\File.cmd") -replace '(?<=\bLoremIpsum)-\w+' | Out-File -encoding ASCII C:\File.cmd

(?<=\bLoremIpsum)-\w+正则表达式匹配一个连字符 ( - ) 和一个或多个单词字符 ( \w+ ),它们紧跟在整个单词的LoremIpsum之前( \b是单词边界)。

请注意,如果您想在LoremIpsum之后删除任何一个或多个非空白字符,则可以将\w+替换为\S+

或者,您可以使用

(Get-Content "C:\File.cmd") -replace '\b(LoremIpsum)-\w+', '$1' | Out-File -encoding ASCII C:\File.cmd

在这里, LoremIpsum被捕获到一个捕获组中(ID 为 1,因为它是正则表达式中的第一个捕获组),现在替换为$1 ,替换反向引用引用组 1 的值。

请参阅正则表达式演示 #1此正则表达式演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM