你好!
- “-replace”引數是否系結到cmdlet “Get-Content”?通過谷歌搜索,我在許多不同的情況下發現了它
- 為什么官方檔案中沒有顯示-replace引數?獲取內容微軟
問題:
文本apporaches是這樣的:olor sit amet, consetetur sadipscing elitr, sed diam noumy LoremIpsum-648648sdfsd
我想通過正則運算式將子字串從“LoremIpsum-xxx”替換為“Loremipsum”
這是我的第一次嘗試:
(Get-Content "C:\File.cmd") -replace "[regex]::matches("LoremIpsum-(.*?)")" | Out-File -encoding ASCII C:\File.cmd
uj5u.com熱心網友回復:
-replace不是Get-Content引數,它是一個運算子,允許使用正則運算式查找指定的模式,然后洗掉或替換匹配的文本。
在您的情況下,您可以使用
(Get-Content "C:\File.cmd") -replace '(?<=\bLoremIpsum)-\w ' | Out-File -encoding ASCII C:\File.cmd
正(?<=\bLoremIpsum)-\w 則運算式匹配一個連字符 ( -) 和一個或多個單詞字符 ( \w ),這些字符字符 ( ) 前面緊跟 aLoremIpsum作為整個單詞(\b是單詞邊界)。
請注意\w ,如果您\S 想在LoremIpsum.
或者,您可以使用
(Get-Content "C:\File.cmd") -replace '\b(LoremIpsum)-\w ', '$1' | Out-File -encoding ASCII C:\File.cmd
在這里,LoremIpsum被捕獲到一個捕獲組(ID 為 1,因為它是正則運算式中的第一個捕獲組),并且替換現在是$1,替換反向參考指的是 Group 1 值。
請參閱正則運算式演示 #1和此正則運算式演示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/464806.html
