如何用两个分隔符分割字符串?

Bob*_*obs 17 java regex string split

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

例:

mySring = "abc==abc++abc==bc++abc";
Run Code Online (Sandbox Code Playgroud)

我需要这样的东西:

myString.split("==|++")
Run Code Online (Sandbox Code Playgroud)

它的常规表达是什么?

Den*_*ret 33

用这个 :

 myString.split("(==)|(\\+\\+)")
Run Code Online (Sandbox Code Playgroud)


Pra*_*nth 10

如果我必须使用两个子串分割,我该怎么做:

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);
Run Code Online (Sandbox Code Playgroud)

用first替换所有第二个分隔符的实例,用first分割.

注意:使用replaceAll允许您使用正则表达式delimiter2.所以,你应该delimiter2用一些匹配正则delimiter1表达式的字符串替换所有匹配.


Ani*_*nda 7

你可以用它

        mySring = "abc==abc++abc==bc++abc";
        String[] splitString = myString.split("\\W+");
Run Code Online (Sandbox Code Playgroud)

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


RNJ*_*RNJ 5

试试这个

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

答案是一系列的

[aa, bb, cc]
Run Code Online (Sandbox Code Playgroud)

{2}匹配过程字符的两个字符.那是=或+(转义)| 匹配任何一方

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