我正在努力处理旧的“格式化”代码,其中添加了很多空格来排列 = 等等:
if (!This.RevData.Last().Size() eq 0) then
!DocRev = '?'
!Status = '?'
!RevCode = '?'
else
!Pad = !This.RevData.Last()[1]
!DocRev = !Pad[2]
!Status = !This.GenUtil.If((!Pad[3] eq 'UA'), '' , !Pad[3])
!RevCode = !This.GenUtil.If((!Pad[6] eq '' ), '?', !Pad[6])
endif
在这个例子中,它实际上是有道理的,但大多数情况下,代码已被修改为使空白比有用的更令人困惑的状态。
我想做的是用一个空格替换所有双(或更多)空格,但我当然想保留缩进。因此,我正在寻找一个正则表达式来识别不在行首的双(或更多)空格。我已经尝试过消极的lookbehind,但似乎无法使其工作:
(?<![\n])[\s]{2,}
任何提示,有人吗?哦,我正在使用 Ultraedit(Perl 正则表达式引擎),所以正则表达式应该是“UE 兼容的”。
编辑:UE 不会逐行评估正则表达式的行;换行符只是作为文档的长字符串中的一个字符,这使问题有点复杂。