当前位置: 代码迷 >> J2SE >> 求个正则,截取字符串解决方法
  详细解决方案

求个正则,截取字符串解决方法

热度:74   发布时间:2016-04-23 20:39:06.0
求个正则,截取字符串
本帖最后由 miraclestar 于 2014-05-16 15:54:45 编辑

截取最后一个 【反斜线】和【第一个点】之间的【数字】
如下所示:
/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");
  相关解决方案