我正尝试拆分正则表达式,但由于某些原因未拆分。这是我的代码
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
答案 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);
}
}
}