Как я могу разделить строку на два разделителя?

Я знаю, что вы можете разделить свою строку, используя myString.split("something"). Но я не знаю, как я могу разделить строку на два разделителя.

Пример:

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

Мне нужно что-то вроде этого:

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

Каково его регулярное выражение?

Ответы

Ответ 1

Используйте это:

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

Ответ 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);

Сначала замените все экземпляры второго разделителя первым и разделите сначала.

Примечание. Использование replaceAll позволяет использовать regexp для delimiter2. Таким образом, вы должны фактически заменить все соответствия delimiter2 на некоторую строку, которая соответствует delimiter1 regexp.

Ответ 3

Вы можете использовать этот

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

Регулярное выражение \W + --- > оно разделит строку на основе символа, отличного от слова.

Ответ 4

Попробуйте это

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

Ответ представляет собой массив

[aa, bb, cc]

{2} соответствует двум символам обрабатывающего символа. Это либо =, либо + (экранированный) | соответствует любой стороне

Я избегаю \in java, поэтому регулярное выражение на самом деле ={2}|\+{2}