18

を使用して文字列を分割できることを知っていますmyString.split("something")。しかし、文字列を 2 つの区切り記号で分割する方法がわかりません。

例:

mySring = "abc==abc++abc==bc++abc";

私はこのようなものが必要です:

myString.split("==|++")

その正規表現は何ですか?

4

4 に答える 4

35

これを使って :

 myString.split("(==)|(\\+\\+)")
于 2012-09-26T08:24:45.960 に答える
11

2 つの部分文字列を使用して分割する必要がある場合の方法:

String mainString = "This is a dummy string with both_spaces_and_underscores!"
String delimiter1 = " ";
String delimiter2 = "_";
mainString = mainString.replaceAll(delimiter2, delimiter1);
String[] split_string = mainString.split(delimiter1);

2 番目の区切り文字のすべてのインスタンスを最初のものに置き換え、分割を最初のものに置き換えます。

注: using を使用replaceAllすると、 に正規表現を使用できますdelimiter2。したがって、実際には のすべての一致をの正規表現delimiter2に一致する文字列に置き換える必要があります。delimiter1

于 2012-09-26T08:39:04.877 に答える
5

これを試して

String str = "aa==bb++cc";
String[] split = str.split("={2}|\\+{2}");
System.out.println(Arrays.toString(split));

答えは配列です

[aa, bb, cc]

{2} は、先行する文字の 2 文字に一致します。それは = または + (エスケープ) のいずれかです。どちら側にもマッチ

私はJavaで\をエスケープしているので、正規表現は実際には={2}|\+{2}

于 2012-09-26T08:27:12.960 に答える