カンマでsplit
問題
以下のJavaプログラムを実行して、結果を表示するためには、splitの引数には何をわたせばいいでしょう?
(","が区切り記号だが、"\,"は区切りとしないという場合)
String text = "aaa,bb\\,b,ccc"; String[] ss = text.split("ここ"); for (String s : ss) { System.out.println("[" + s + "]"); }
期待する結果
[aaa] [bb\,b] [ccc]
うまくいかなかった例
・"[^\\\\],"→前の文字にマッチしちゃう
・"[^\\\\]??,"→最短一致だからいけそうなもん?だが、これもダメみたい
ちょっとハマった。
「幅ゼロの否定後読み」というのを使ったらうまくいった。正規表現って難しいね。
"(?<!\\\\),"