我正在尝试在split()方法中用多个符号分割字符串,但无法正常工作

时间:2020-08-04 19:13:18

标签: java regex split

我正尝试拆分正则表达式,但由于某些原因未拆分。这是我的代码

String str = "sdef@srdfsrd[es[edf@edfv";
String[] arrOfStr = str.split("\\@\\["); 
for (String a : arrOfStr) 
{
  System.out.println(a);
}

输出:

sdef@srdfsrd[es[edf@edfv

预期输出:

sdef
srdfsrd
es
edf
edfv

以下问题相同:

String[] arrOfStr = str.split(",:");  //not splitting the word at all

2 个答案:

答案 0 :(得分:4)

"\\@\\["@[匹配,该字符串在字符串中。将RegEx更改为character class,即"[@\\[]",这意味着它将在@[上拆分。

查看演示here:)

答案 1 :(得分:1)

使用"@|\\[代替\\@\\[

请注意,在正则表达式模式中,|的作用与OR相同,即通过使用"@|\\[来指示代码在@ {{1}上拆分给定的字符串}在OR

或者,您可以使用[,其中[@\\[]指定character classes

演示:

[]

输出:

public class Main {
    public static void main(String[] args) {
        String str = "sdef@srdfsrd[es[edf@edfv";
        String[] arrOfStr = str.split("@|\\[");
        for (String a : arrOfStr) {
            System.out.println(a);
        }
    }
}