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创建一个快速程序.任何人都可以给我一些关于正则表达式的指针吗?
是的,\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)