2

私はこのような文字列を持っています:

String foo = "James Padolsky , Jimmy\\,Hoffa , Jane"

通常の分割で,は、Jimmy\,Hoffa も分割されます。

そうなる

  1. James Padolsky
  2. Jimmy\
  3. Hoffa
  4. Jane

私が必要なのは

  1. James Padolsky
  2. Jimmy\,Hoffa
  3. Jane

したがって、正規表現は無視し、 どの正規表現で上記の分割が得られるか\,によってのみ分割する必要があります。,

4

2 に答える 2

5

否定の後読みを使用できます。

(?<!\\),

Java 文字列として、それは"(?<!\\\\),".

于 2013-08-14T18:46:55.257 に答える
1

必要なコンマとオプションのスペースを使用した簡単なソリューションを次に示します。

String foo = "James Padolsky , Jimmy\\,Hoffa , Jane";
String[] splitted = foo.split("\\s?,\\s?");
for (String split: splitted) {
    System.out.println(split);
}

出力:

James Padolsky
Jimmy\,Hoffa
Jane

注: のバックスラッシュの二重エスケープfoo。そうしないと、String初期化がコンパイルされません。

于 2013-08-14T18:49:21.403 に答える