我有几个像这样的png图像文件 -
在上面的例子中,我需要从这些文件名中提取整数... 5,12,2352。有谁知道怎么做?
答案 0 :(得分:2)
只需复制并粘贴即可。这是一个真正有效的版本。 (并抱歉以前的版本不起作用)
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void main(String[] args){
Pattern p = Pattern.compile("house_(\\d+)\\.png");
Matcher m = p.matcher("house_234.png");
if (m.find()) {
System.out.println(m.group(1)); //print the number
}
}
}
结果
234
答案 1 :(得分:0)
如果你想在没有正则表达式的情况下这样做:
/* assume valid input */
public int getNumber(String filePath)
{
int startPos = filePath.lastIndexOf("_");
int dotPos = filePath.indexOf(".", lastUnderscorePos);
String numberString = filePath.substring(startPos + 1, dotPos);
return Integer.parseInt(numberString);
}
答案 2 :(得分:0)
Pattern intsOnly = Pattern.compile("\\d+");
Matcher makeMatch = intsOnly.matcher("house_number_5.png");
makeMatch.find();
String inputInt = makeMatch.group();
System.out.println(inputInt);
答案 3 :(得分:0)
答案 4 :(得分:0)
使用正则表达式替换所有作品:
"house_number_52352.png".replaceAll (".*[^0-9]([0-9]+)\\.png", "$1")
将整个事物替换为(至少一位数)。