我想要实现的目标非常简单: 我的行看起来类似于:
V123,V20
10,9999
100,V220
等...
基本上有很多对带有前导字母/零的数字。 我希望能够使用RegEx解析它们,到目前为止我在Java中发现的是:
Pattern p = Pattern.compile(".*([1-9](?:\\d{0,2})).*",Pattern.MULTILINE);
Matcher m = p.matcher("V999,V50");
System.out.println(m.matches()); - return true
System.out.println(m.groupCount()); --> this one returns 0
任何帮助将不胜感激, 感谢。
答案 0 :(得分:1)
public static void main(String[] args) throws IOException {
String[] a = new String[] {"V123,V20", "10,9999", "100,V220"};
for (String s: a) {
Pattern p = Pattern.compile("[\\D0]*(\\d*)[\\D0]*(\\d*)",Pattern.MULTILINE);
Matcher m = p.matcher(s);
System.out.println(m.matches());
System.out.println(m.group(1) + ", " + m.group(2));
}
}
希望它有所帮助!
修改
P.S。:如果您有尾随字母,可以在最后添加\\ D:
"[\\D0]*(\\d*)[\\D0]*(\\d*)[\\D]*
答案 1 :(得分:0)
我会这样做
Matcher m = Pattern.compile("\\d+").matcher(str);
while(m.find()) {
int i = Integer.parseInt(m.group());
}