日期:2014-05-19  浏览次数:20669 次

正则表达式如何截取文本
文本内容如下:
11.27 2012 16:40 xxxxxxxxxxxx
....
11.27 2012 17:45 xxxxxxxxxxx
.....
11.27 2012 18:20 xxxxxxxxxxxx
.......
11.27 2012 22:20 xxxxxxxxxx
xxxxxxxx
我想截取17:45开始到18:00的文本内容,如何写?
java.util.regex api看着有点晕(特别是group那些)。
public static void regexOper(String str){
Pattern p = Pattern.compile("11.9.2012 11:21:");
Matcher m = p.matcher(str);
//???
}

------最佳解决方案--------------------
11.27\\s2012\\s(\\d+):(\\d+)
if(m.find()){
    m.group(1);//时
    m.group(2);//分
}
------其他解决方案--------------------
return yourStringText.replaceAll("(?s)^.*?(11.27 2012 17:45.+11.27 2012 18:20[^\\r\\n]+).*$", "$1");

分真少
------其他解决方案--------------------
引用:
return yourStringText.replaceAll("(?s)^.*?(11.27 2012 17:45.+11.27 2012 18:20[^\\r\\n]+).*$", "$1");

分真少

分少所以给的答案比较深奥么- -
------其他解决方案--------------------
其实这里分没多少用处,只是为了发帖求答案