我有许多不同的字符串,如下所示:
那就是: - 单个数字(可能是多个数字) - 由'和',逗号或空格分隔的序列
我想写一个Reg Ex来拉回字符串的数字位。我以为这样的事情会起作用:
Pattern.compile("^(?:(\\d+)[^\\d]+)*$");
这个想法是它应匹配并捕获数字序列,跳过多个非数字字符并重复
答案 0 :(得分:3)
你不只是在这里做数字匹配吗?:
String str = "1, 2 and 3, 93";
Matcher m = Pattern.compile("\\d+").matcher(str);
while (m.find()) {
System.out.println(m.group(0));
}
答案 1 :(得分:0)
为什么不匹配“\ d +”?
public class SO {
public static void main(String[] args) {
String s = "13, 23 and 33";
Pattern p = Pattern.compile("(\\d+)");
Matcher m = p.matcher(s);
List<Integer> result = new ArrayList<Integer>();
while (m.find()) {
result.add(new Integer(m.group()));
}
System.out.println(result);
}
}
打印出来
[13, 23, 33]