我有一个如下字符串:
String str="tile tile-2 tile-position-1-4"
我希望接收数组中的数字,例如[2,1,4]
。
我自己的解决方案是使用split
断开字符串,但是我想知道是否使用Regx
感谢@nitzien与Regx进行了尝试:
String pattern= "^tile tile-(\\d*) tile-position-(\\d*)-(\\d*)$";
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(str);
System.out.println(m.group(0));
System.out.println(m.group(1));
System.out.println(m.group(2));
但是,它抱怨:
java.lang.IllegalStateException: No match found
答案 0 :(得分:1)
regex pattern - "^tile tile-(\d*) tile-position-(\d*)-(\d*)$"
replacement - "[\1,\2,\3]"
替换是字符串,您将需要根据使用的语言将其转换为数组。
问题编辑后的答案更新
String str="tile tile-2 tile-position-1-4";
String pattern= "^tile tile-(\\d*) tile-position-(\\d*)-(\\d*)$";
System.out.println(str.replaceAll(pattern, "$1,$2,$3"));
这将给出
2,1,4