一串字符串
如 1,2,3,4
或者 1,2,3,4
或者 1,2,3,4
或者 1,2,3,4,
像这样的,要求 必须以数字开始,重复数字无限定
以非字符,或者,隔开 最后允许多一个或者不多逗号
每个数字必须以非数字字符隔开
最好用逗号隔开
暂时不考虑这样的隔开法
1@2@3¥4
或者1a2b3c4
谢谢各位了
------解决方案--------------------
你看这个是你要的不,我也是刚学的
[\\d\\s*\\,?]+
------解决方案--------------------
(\\d{1}[,,])+[,,]?
这个应该可以,我在自己机器上试过了。
------解决方案--------------------
str = str.replaceAll("(?<=\\d)(?=\\d)", ",");
------解决方案--------------------
只判断了匹配
- Java code
String[] s = { "1,2,3,4", "1,2,3,4", "1,2,3,4", "1,2,3,4," };for (int i = 0; i < s.length; i++) { System.out.println(s[i].matches("(\\d[,,])+(\\d[,,]?)?"));}
------解决方案--------------------
上面的那个有 bug,改进一下:
- Java code
public class Test { public static void main(String[] args) { String[] s = { "1,2,3,4", "1,2,3,4", "33", "1,2,3,4", "1,2,3,4,", "1,3,4,5,6,7,8,9,1000," }; String pattern = "(?:\\d(?!\\d)[,,]?)+"; for (int i = 0; i < s.length; i++) { System.out.println(s[i] + " " + s[i].matches(pattern)); } }}
------解决方案--------------------
- Java code
str.matches("(\\d+\\W+?)+")
------解决方案--------------------