【发布时间】:2016-05-18 06:16:50
【问题描述】:
我有一个类似下面的字符串 “blaa...blup..blaaa...bla。”
每个多于一个点的部分都必须替换为“_”,但它必须与替换的字符具有相同的数量。
该字符串应导致: “bla___blup__blaaa___bla。”
注意最后一个点没有被替换,因为它没有其他点“连接”。
我尝试在 powershell 中使用以下正则表达式方法,但无论是否有 3 个或更多点,我总是得到 2 的长度:
$string -replace '(.)\1+',("_"*'$&'.length)
有什么想法吗?
【问题讨论】:
-
@PetSerAl:为什么?只需一个正则表达式即可轻松解决。
-
@WiktorStribiżew 鉴于 OP 代码,我认为这是他想要做的,所以我投票赞成。
-
是的,没错。我会在我的回答中添加一个注释。
-
感谢所有的答案,我可以用这个解决我的问题。
标签: regex string powershell replace