2016-07-14 4 views
0

フィールドの真ん中にLF文字があり、実際に新しい行を示すためにCRLF文字を持つCSVファイルが表示されています。私はSublime Text 3でファイルを16進数で表示していますが、LF文字は検索してCRLFではなく、スペースで置き換えるだけで簡単に検索して置き換えたいと思っています。私は限りCRLF LFを探したがないために得ている正規表現CRLFの16進数ではないすべてのLF文字を見つける

、私は正規表現

[^0d]0aを使用することができます。この問題は、XX0d 0aXXを持つ可能性のあるケースをキャプチャしないため、正規表現でこれをキャプチャする方法がわかりません。私はこれを16進のスペースである '20'に置き換えたいと考えています。

+2

'[^ 0d]'はあなたの考えをしません。これは '0'や' d'以外の文字にマッチし、シーケンスにマッチしません。 – Barmar

+0

ああ、ありがとう!今、私はこのようなものです: '^((?! 0d)。)0a'、しかしそれはうまくいきません。 – Vincent

+0

@Barmar。あなたが正しい。私はそれを間違って読む。ありがとう。 –

答えて

3

0dとオプションの空白が一致するネガティブなビヘイビアを使用します。

(?<!0d\s*)0a 

しかし、いくつかの正規表現エンジンはlookbehindsで数量を許可しません。したがって、lookbehindの後に空白チェックを入れて、それをキャプチャして置き換えて使用する必要があります。

(?<!0d)(\s*)0a replace with ${1}20 

これを16進ではなくテキストモードで実行した方が簡単でしょう。交換する。

(?<!\r)\n 

関連する問題