截取最后一个 【反斜线】和【第一个点】之间的【数字】
如下所示:
/home/32/41735.h264_1.04005201.txt
截取红色的部分
long ret = -1;
Pattern pattern = Pattern.compile(".*//{/d}\\..*");
Matcher matcher = pattern.matcher(url);
if (matcher.find()) {
System.out.println(matcher.group(1));
ret = Long.parseLong(matcher.group(1));
}
------解决方案--------------------
楼主这个完全可以不用正则
String s="/home/32/41735.h264_1.04005201.txt";
int start=s.lastIndexOf("/");//取最后一个/出现的位置
s=s.substring(start+1, s.indexOf(".",start));//从最后一个出现/位置到/后面出现的第一个.的位置
System.out.println(s);
------解决方案--------------------
System.err.println("/home/32/41735.h264_1.04005201.txt".replaceAll(".*/(\\d{5,})\\..*", "$1"));
------解决方案--------------------
你不也说 是 截取最后一个 【反斜线】和【第一个点】之间的【数字】
哪干嘛还要正则 多麻烦 还要想半天
String s = "/home/32/41735.h264_1.04005201.txt";
String dest = s.substring(s.lastIndexOf("/")+1, s.indexOf("."));
------解决方案--------------------
获取字符串的长度,把字符串存入数组,遍历数组元素for循环,从最右边的元素开始判断,是否有"/" ,有的话保存右边字符串,跳出循环,在从左判断元素“.”,有的话跳出,保存左边的字符串(就是字符串的长度—循环了几次,然后按位保存)。笨方法,值提供一个思路,勿喷!!
------解决方案--------------------
String string2=string.replaceAll(".*/([^.]*?)\\..*", "$1");