关于正则表达式
Stringstr="<!--[6,1092,1]publishedat2013-12-3017:38:42from#235bysystem-->";Patterntp=...
String str = "<!--[6,1092,1] published at 2013-12-30 17:38:42 from #235 by system-->";
Pattern tp = Pattern.compile("[0-9]{4}[年|-][0-9]{1,2}[月|-][0-9]{1,2}[ |日|][0-9]{1,2}:[0-9]{1,2}");
Matcher m = tp.matcher(str);
if(m.matches()){
System.out.println(m.group());
}
我这么一段代码为什么输不出来啊。
本来不是应该输出时间的么。以前试过成功的,重新写了一遍不知道哪里错了。 展开
Pattern tp = Pattern.compile("[0-9]{4}[年|-][0-9]{1,2}[月|-][0-9]{1,2}[ |日|][0-9]{1,2}:[0-9]{1,2}");
Matcher m = tp.matcher(str);
if(m.matches()){
System.out.println(m.group());
}
我这么一段代码为什么输不出来啊。
本来不是应该输出时间的么。以前试过成功的,重新写了一遍不知道哪里错了。 展开
2个回答
展开全部
你的正则表达式在"日"后面多了一个"|",去掉"|"就行了,
另外,你用if(m.matches())判断是不对的,因为m.matches()是匹配整个字符串,用m.find()才是匹配整个字符串中的一部分,完整的程序如下:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Test9 {
public static void main(String[] args) {
String str = "<!--[6,1092,1] published at 2013-12-30 17:38:42 from #235 by system-->";
Pattern tp = Pattern.compile("[0-9]{4}[年|-][0-9]{1,2}[月|-][0-9]{1,2}[ |日][0-9]{1,2}:[0-9]{1,2}");
Matcher m = tp.matcher(str);
while(m.find()){
System.out.println(m.group());
}
}
}
运行结果:
2013-12-30 17:38
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询