我是正则表达式的新手,并且想知道我怎么才能得到字符串中的第一个数字,如100 2011-10-20 14:28:55.在这种情况下,我希望它返回100,但数字也可能更短或更长.
我在考虑像[0-9] +这样的东西,但它分别需要每一个数字(100,2001,10,......)
谢谢.
hai*_*sin 20
/^[^\d]*(\d+)/
Run Code Online (Sandbox Code Playgroud)
这将从头开始,跳过任何非数字,并匹配它找到的第一个数字序列
编辑:这个正则表达式将匹配第一组数字,但正如其他答案所指出的,如果你知道数字是在字符串的开头,parseInt是一个更好的解决方案
试试这个来匹配字符串中的第一个数字(它可以不在字符串的开头):
String s = "2011-10-20 525 14:28:55 10";
Pattern p = Pattern.compile("(^|\\s)([0-9]+)($|\\s)");
Matcher m = p.matcher(s);
if (m.find()) {
System.out.println(m.group(2));
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
45766 次 |
最近记录: |