我有许多不同的字符串,看起来像:
- 1
- 1,2
- 1 2
- 1 和 2
- 1、2 和 3
- 1, 93
所以这就是: - 单个数字(可能是多个数字) - 由“和”、逗号或空格分隔的序列
我想写一个 Reg Ex 来拉回字符串的数字位。我曾认为这样的事情会起作用:
Pattern.compile("^(?:(\\d+)[^\\d]+)*$");
这个想法是它应该匹配和捕获数字序列,跳过多个非数字字符并重复
您不只是在这里对数字进行匹配吗?:
String str = "1, 2 and 3, 93";
Matcher m = Pattern.compile("\\d+").matcher(str);
while (m.find()) {
System.out.println(m.group(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]