2016-04-05 10 views
2

";""\n"に置き換えたい場合は、先頭に '\'を付けてエスケープする場合を除きます。私は正しい正規表現を理解していない。ここでエスケープ文字を含むJavaパターンの正規表現

は私が持っているものである:(表現(?<!\\)

s = s.replaceAll("(?<!\\\\);", "\n"); 

String s = "abc;efg\\;hij;pqr;xyz\\;123" 
s.replaceAll("\\[^\\\\];", "\\\\n"); 

私は後ろの負のデザインを使用上記の文字列が"abc\nefg\;hij;pqr;xyz\;123"

+0

ちょうど 's.replace( "\\;"、 "\ n" は);' – Maljam

+0

私はしたくありません\を置き換えます。 \ nで。新しい行のセミコロンのみ。私は上記の正規表現を修正しました。 –

+0

だから、@ダースニンジャ、あなたが「\; '\ n' "と - あなたはそうではありません...そうですか?あなたが意味する質問をしてください。 –

答えて

2

に置き換えることを期待したいですJava文字列リテラル"(?<!\\\\)"としてコード化されています)は、 "前の文字はバックスラッシュであってはいけません"を意味します。


テストコード:

String s = "abc;efg\\;hij;pqr;xyz\\;123"; 
s = s.replaceAll("(?<!\\\\);", "\n"); 
System.out.println(s); 

出力:

abc 
efg\;hij 
pqr 
xyz\;123 
関連する問題