我需要匹配一个String并使用Java从中检索数据。
e.g。
字符串line='Id 878-234
提供数字878-234的信息
以下是预期结果:
如果ID在行首不可用,则应搜索未由-
分隔的六位数字。
String text='Id 878-234 provide info for 1233444 no';
String regex='^Id ([0-9]{3}-[0-9]{3})';
Matcher m = Pattern.compile(regex).matcher(text);
if(m.matches())
{
System.debug(m.group(1));
}
我正在使用上面的代码,但它不起作用。请不要让我如何解决这个bcz我是正则表达的新手。
答案 0 :(得分:1)
答案 1 :(得分:0)
String line="Id 878-234 provide info for 1233444 no";
String[] ints = line.split("[^0-9]+");
int a1 = Integer.parseInt(ints[1]);
int a2 = Integer.parseInt(ints[2]);
int a3 = Integer.parseInt(ints[3]);
System.out.println(a1);
System.out.println(a2);
System.out.println(a3);
output:
878
234
1233444
答案 2 :(得分:0)
下面的正则表达式会得到由-
分隔的6位数字,它就在字符串ID之后,
String s = "Id 878-234 provide info for 1233444 no";
Pattern p = Pattern.compile("^Id\\s*([0-9]{3}-[0-9]{3})");
Matcher m = p.matcher(s);
while (m.find()) {
System.out.println(m.group(1));
} //=> 878-234