2016-12-23 24 views
2

のすべてのn番目の発生時に新しい行を挿入++、私は私の中の文字または文字列(カンマのすべてのN番目の発生時に新しい行を挿入したいと思います場合)。メモ帳メモ帳++ <em></em>機能を検索と置換を使用して文字列/文字

私は "正規表現"モードを使用して以下の正規表現を試しましたが、運はありません。

何を探す:((,){1000})

と交換してください:あなたがライン上の任意の文字列のn番目の発生後に改行を追加することを意味する場合\1\n

+0

なり、この作品:単一のcharで

は、あなたが(行にわたるないオーバーフローにパターンを強制するのではなく、そこに改行文字を追加します)より良い否定文字クラスを使用したいです: '(((*?)、){1000})'?私は正規表現を理解できませんでした。 – Pugazh

+0

あなたのコメントの正規表現は近づきました、試してみましたか? –

+0

これは明らかではありません:*ファイル*または*行*のn番目ごとの発生? –

答えて

3

は、私が使用したい

(?:.*?,){2} 

$&\n(または$&\r\n)と置き換えます。ここで、.*?は0以上の任意の文字に一致します最初の出現まではできるだけ少なく、改行文字は,です。 $&は全体の照合値に対する後方参照です(2は、デモがよりきれいに見えるように使用されます)、1000はむしろ大きな値です。各行の後に改行が置かれていることを示すデモをご覧ください。,

(?:[^\n\r,]*,){2} 

enter image description here

+1

素晴らしいです、ありがとう! – Pugazh

+0

あなたはvimでこれをどうやってやりますか? –

+0

@DanielvanFlymen:Vimでは、改行を挿入するには '\ r'で置き換える必要があります。また、Vimの文字クラスは改行と一致しないので、 '[...]'に '\ n \ r'を使う必要はありません。そして、マッチ全体への逆参照は '&'です。ですから、 '%s/\([^、] *、\)\ {2} /&r \ g'を試してみてください。 –

関連する問題