使用正则表达式从字符串中提取数字

时间:2018-09-29 18:46:37

标签: java regex

我有一个如下字符串:

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

1 个答案:

答案 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