嗨
- 是"-替换";参数绑定到cmdlet";获取内容">?通过谷歌搜索,我在许多不同的环境中找到了它
- 为什么官方文档中没有显示-replaceParameter?获取内容Microsoft
问题:
正文如下:color坐amet,consetetur sadipscing elitr,sed diam nonmyLoremIpsum-648648sdfsd
我想通过Regex从";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+
正则表达式匹配一个连字符(-
)和一个或多个紧跟在LoremIpsum
前面的单词字符(w+
)作为一个完整单词(b
是单词边界)。
注意如果要删除LoremIpsum
之后的任何一个或多个非空白字符,则可以用S+
替换w+
。
或者,您可以使用
(Get-Content "C:File.cmd") -replace 'b(LoremIpsum)-w+', '$1' | Out-File -encoding ASCII C:File.cmd
这里,LoremIpsum
被捕获到捕获组中(ID为1,因为它是正则表达式中的第一个捕获组),并且替换现在是$1
,替换后引用引用组1的值。
请参阅regex演示#1和此regex演示。