我有一个字符串:
154545K->12345K(524288K)
假设我想从这个字符串中提取数字。
该字符串包含位置 0
处的组 154545
、位置 1
处的 12345
和 524288
位于 2
位置。
使用正则表达式 \\d+
,我需要提取位于 1
位置的 12345
。
我使用这个得到了想要的结果:
String lString = "154545K->12345K(524288K)";
Pattern lPattern = Pattern.compile("\\d+");
Matcher lMatcher = lPattern.matcher(lString);
String lOutput = "";
int lPosition = 1;
int lGroupCount = 0;
while(lMatcher.find()) {
if(lGroupCount == lPosition) {
lOutput = lMatcher.group();
break;
}
else {
lGroupCount++;
}
}
System.out.println(lOutput);
但是,是否有任何其他简单直接的方法来实现此保持正则表达式相同\\d+
(不使用组计数器)?
最佳答案
试试这个
String d1 = "154545K->12345K(524288K)".replaceAll("(\\d+)\\D+(\\d+).*", "$1");
关于java - 正则表达式模式匹配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22471153/