Powershell正则表达式

ato*_*son 0 regex string powershell text

是否可以使用Powershell regex命令将文本字符串中的最后一个连续零替换为“ M”。例如:

$Pattern = @("000123456", "012345678", "000000001", "000120000")
Run Code Online (Sandbox Code Playgroud)

最后结果:

00M123456
M12345678
0000000M1
00M120000
Run Code Online (Sandbox Code Playgroud)

谢谢。

nha*_*tdh 5

搜索以下正则表达式:

"^(0*)0"
Run Code Online (Sandbox Code Playgroud)

正则表达式0在字符串的开头搜索连续^的字符串。它捕获0除要更换的一个以外的所有东西。"^0(0*)"同样有效,因为我们只需要记下0不涉及的数字即可。

用替换字符串:

'$1M'
Run Code Online (Sandbox Code Playgroud)

请注意,$1它表示由(0*)正则表达式中的第一个捕获组捕获的文本。

@SegFault的示例:

"000120000" -replace "^(0*)0", '$1M'
Run Code Online (Sandbox Code Playgroud)

  • 这个答案很好,但是在powershell中使用单引号作为替换字符串。例如,“ 000120000”-替换“ ^(0 *)0”,'$ 1M'`。 (2认同)