我有字符串xxxxy 1/1/2
,我需要使用java从字符串中找出第一次出现的Integer的索引。输出将是第一个“1”索引。我需要正则表达式。
答案 0 :(得分:5)
无需使用正则表达式。将您的String转换为char数组,在其上循环并使用Character#isDigit()
答案 1 :(得分: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
答案 2 :(得分:2)
int pos = s.replaceFirst("^(\\D+).*$", "$1").length();
保留非数字\\D
。
答案 3 :(得分: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
}
}
答案 4 :(得分:0)
您可以使用此函数从字符串中获取索引:
function GetIndex (strValue) {
var notDigRegExp = /^\D+/;
var digRegExp = /^\d+/;
strValue = strValue.replace(notDigRegExp, "");
var matches = strValue.match(digRegExp);
return matches[0];
};