用空格替换前导零

Nat*_*anK -3 c# python regex powershell notepad++

我有一个多个记录的文本文件.每个记录都有一个字段,其中包含一些前导零,我需要用这些空格替换.记录将如下所示:

A206   000001204   X4609
Run Code Online (Sandbox Code Playgroud)

我需要记录看起来像这样:

A206        1204   X4609
Run Code Online (Sandbox Code Playgroud)

我对正则表达式非常不熟悉,但以下正则表达式似乎找到了我需要的匹配项:

\b0+
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何更换.NoteA ++的ReplaceAll会很棒但我也可以根据需要用C#,Powershell或Python创建一个快速程序.任何人都可以给我一些关于正则表达式的指针吗?

Mat*_*sen 5

是的,\b0+可能会奏效.

这里使用的Regex.Replace()方法C#:

using System.Text.RegularExpressions;

Regex.Replace(inputString, @"\b0+", m => "".PadLeft(m.Value.Length,' '));
Run Code Online (Sandbox Code Playgroud)

最后一个参数Replace()是一个简单的lambda函数,它返回一个与匹配的0s 数相同长度的字符串,但只包含空格


你也可以这样做PowerShell,用一个替换scriptblocklambda函数:

PS C:\> $inputString = 'A206   000001204   X4609'
PS C:\> [regex]::Replace($inputString, '\b0+', {param($m) ' ' * $m.Value.Length})
A206        1204   X4609
Run Code Online (Sandbox Code Playgroud)