【发布时间】:2015-04-09 14:42:32
【问题描述】:
目前我有以下代码:
String test = "=(7+A15)-5";
if(test.matches(".*[A-z]+[0-9]+.*")){
String spl[] = test.split("((?<=[A-z]{1,4}[0-9]{1,4})|(?=[A-z]{1,4}[0-9]{1,4}))",3);
System.out.println(spl[0] + "\n" + spl[1] + "\n" +spl[2] );
}
打印我:
=(7+
A1
5)-5
除非我想要:
=(7+
A15
)-5
但我不知道为什么当我问 {1,4} 时它只得到一个数字
【问题讨论】:
-
[A-z]包括字符'[', '\\', ']', '^', '_',和'`'。在new String("foo")中包装字符串是没有意义的。 -
字母数字标记的范围是多少(从您的正则表达式看来,您正在查看每个字母的 1 到 4 个 {1,4} 和每个数字的 {1,4}。ABCD1234 是有效但 ABCDEF12345 无效?
-
没错,ABCD1234 有效,而 ABCDEF... 无效
-
@Naouk 得到了一个解决方案,尽管它很奇怪.....
-
你能分享一下吗@gtgaxiola?我尝试了很多东西,但找不到。我需要保留分隔符,如果它没有正确拆分,则没有任何作用
标签: java regex split alphanumeric