2

Javaで分割機能を使用しようとしています。分割しようとしている文字は です;

だから私のコードは次のようになります:

string.split(";");

ただし、文字列内には多くのエスケープがあり\;ます。\;で分割されず、 が単独である場所でのみ分割される正規表現が必要でした;

文字列の例:

sometexthere\;shhshshshhs;shhshshshshs\;dddddd;

期待される結果:

[0] sometexthere\;shhshshshhs;
[1] shhshshshshs\;dddddd;

任意のヘルプをいただければ幸いです。ありがとう!

4

2 に答える 2

5

これを試して:

str.split("(?<!\\\\);");

編集

;結果配列にスプリッター( )を入れたい場合:

str.split("(?<=[^\\\\];)");

この問題には、単一の後読みで十分であることに注意してください。

そして今回、私はテストを行いました:

final String str = "sometexthere\\;shhshshshhs;shhshshshshs\\;dddddd;";
System.out.println(Arrays.toString(str.split("(?<=[^\\\\];)")));

それは出力します:

[sometexthere\;shhshshshhs;, shhshshshshs\;dddddd;]
于 2013-08-29T12:59:46.583 に答える