替换文字的更好方法

时间:2019-12-03 22:34:07

标签: regex powershell replace

我试图用一行之间的空格分隔文本行。

这是我的代码

$Text= "hellohello"
if($Text -match "(\w+)(o)(\w+)") {$Text = ($Matches[1] + $Matches[2] -replace "o", "o ")+$Matches[3]}

有什么更好的方法?假设如果将文本更改为“ manymany”,我希望powershell自动识别第一个单词并在其之间添加空格。

1 个答案:

答案 0 :(得分:0)

您提出的问题可能不分大小。以编程方式识别word并非易事。

对于您的情况来说,这很简单,我假设您只是想找到重复的strings并在它们之间插入一个空格。

正则表达式很容易做到。

"yesyesnonolarryhellohello" -replace "(\w{2,}?)\1",'$1 $1'

输出

yes yesno nolarryhello hello

.{2,}?任何至少2个字符的字符串,()标记为参考

\1来引用第一个匹配的引用

因此,(.{2,}?)\1可以匹配yesyesokokhellohello,在这种情况下,$1yes的值,{ {1}}和ok