= などを並べるために多くの空白が追加されている古い「フォーマットされた」コードに苦労しています。
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
この例では、実際にはある程度の意味がありますが、ほとんどの場合、コードが変更されて、空白が役立つというよりも混乱を招く状態になっています。
私がやりたいことは、すべての二重(またはそれ以上)の空白を単一のスペースに置き換えることですが、もちろんインデントを維持したいと思います。したがって、行頭にない二重(またはそれ以上)のスペースを識別するための正規表現を探しています。私は否定的な後読みを試しましたが、うまくいかないようです:
(?<![\n])[\s]{2,}
ヒントはありますか?ああ、私は Ultraedit (Perl 正規表現エンジン) を使用しているので、正規表現は「UE 互換」である必要があります。
EDIT : UE は行ごとに正規表現の行を評価しません。改行は、ドキュメントである長い文字列の単なる文字であり、問題を少し複雑にします。