我有 String xxxxy 1/1/2
,我需要使用 java 从字符串中找出第一次出现 Integer 的索引。输出将是第一个“1”索引。我需要正则表达式。
问问题
8011 次
5 回答
5
您不使用正则表达式,但如果您必须使用它:
String s = "xxxxy 1/1/2";
Pattern pattern = Pattern.compile("^\\D*(\\d)");
Matcher matcher = pattern.matcher(s);
matcher.find();
System.out.println(matcher.start(1));
输出:6
于 2013-09-03T09:15:13.910 回答
5
无需使用正则表达式。将您的 String 转换为 char 数组,在其上循环并使用Character#isDigit()
于 2013-09-03T09:06:43.487 回答
2
int pos = s.replaceFirst("^(\\D+).*$", "$1").length();
保留非数字\\D
。
于 2013-09-03T09:15:47.683 回答
0
您可以使用此函数从字符串中获取索引:
function GetIndex (strValue) {
var notDigRegExp = /^\D+/;
var digRegExp = /^\d+/;
strValue = strValue.replace(notDigRegExp, "");
var matches = strValue.match(digRegExp);
return matches[0];
};
于 2013-09-03T09:46:20.453 回答
0
您也可以在此代码中省略使用正则表达式,尽管它比干净有效的解决方案更有趣。
for(String b : "abc123cde".split("[a-z]")) {
try {
Integer result = Integer.parseInt(b);
if(result != null) {
System.out.println(result);
break;
}
} catch(NumberFormatException ex) {
//nevermind
}
}
于 2013-09-03T09:22:19.250 回答