我使用以下代码:
String array[] = "aba;b12".split("[4\\,;\\Qab\\E]+");
for(String test : array)
System.out.println(test);
我期待:
a b12
但是我得到了:
<blank line> 12
编辑:我清理了代码,抱歉。
整个想法是将代码分为4,分号,ab,逗号,并将连续分隔符视为一个。
编辑:对于所有的困惑感到抱歉,我知道这个问题并不像以前那么清楚。
由于
答案 0 :(得分:1)
好的,我终于找到了你认为\Q...\E
正在做的事情。我认为你想要的是([4\,;]|ab)+
(如果你把它写成字符串文字,还有任何必要的转义)。呃,除了我不明白为什么你为了逃避逗号而烦恼。
答案 1 :(得分:0)
我认为\ Qab \ E没有按照你的想法行事,正则表达式会被方括号内的任何字符拆分,所以会在a和b处分开,试试这个:
编辑:
([4\,;]+)
我没有正确地阅读,这会给你
ab
b12
但第一部分代表着。
答案 2 :(得分:0)
这个
String array[] = "aba;b12".split("ab|,|;|4");
for(String test : array)
System.out.println(test);
输出
<blank line>
a
b12
答案 3 :(得分:0)
我不能将"aba;b12"
拆分为
a
b
12
如果您希望使用Regex,则必须定义您要执行的操作并为其定义规则。如果它只是单独解析每个字母和数字,你必须手动或修改原始字符串,以便你可以分割它使用正则表达式。 如果你提供一些关于你希望实现什么的背景信息,你会得到一些新的想法。
答案 4 :(得分:0)
String array[] = "aba;;b12".split("(\\Qab\\E+|[4;]+)+");
for(String test : array)
System.out.println(test);