18

我知道您可以使用myString.split("something"). 但我不知道如何用两个分隔符分割一个字符串。

例子:

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

我需要这样的东西:

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

它的正则表达式是什么?

4

4 回答 4

35

用这个 :

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

如果我必须使用两个子字符串进行拆分,我会怎么做:

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);

将第二个分隔符的所有实例替换为第一个并拆分为第一个。

注意: usingreplaceAll允许您将正则表达式用于delimiter2. 因此,您实际上应该将所有匹配项替换为delimiter2与 的正则表达式匹配的某个字符串delimiter1

于 2012-09-26T08:39:04.877 回答
7

你可以用这个

        mySring = "abc==abc++abc==bc++abc";
        String[] splitString = myString.split("\\W+");

正则表达式\W+ ---> 它将根据非单词字符拆分字符串。

于 2015-04-29T10:11:33.827 回答
5

试试这个

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

答案是一个数组

[aa, bb, cc]

{2} 匹配前导字符的两个字符。即 = 或 +(转义) | 匹配任何一方

我在java中转义\所以正则表达式实际上是={2}|\+{2}

于 2012-09-26T08:27:12.960 回答