下面的代码没有告诉我日期之间的内容。请你帮助我。
String res="05/22/2014 03:22:39.288 ffff gggg kkkkkk lllllll ssss 05/22/2014 03:22:39.288 oooooo ppppp qqqq rrrrrr sss 05/22/2014 03:22:39.378 mmmmmm nnn oooo ";
String regEx="((0?[1-9]|1[012])/(0?[1-9]|[12][0-9]|3[01])/((19|20)\\d\\d).*([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].[\\d]*)(.*?)((0?[1-9]|1[012])/(0?[1-9]|[12][0-9]|3[01])/((19|20)\\d\\d).*([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].[\\d]*)?";
Matcher matcher = Pattern.compile(regEx).matcher(res);
while(matcher.find())
{
String group = matcher.group();
System.out.println(group);
}
即使我在下面尝试使用java中的正则表达式的字符串拆分,但它只提供了一个结果:
String regEx="((0?[1-9]|1[012])/(0?[1-9]|[12][0-9]|3[01])/((19|20)\\d\\d).*([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9].([\\d][^\\s]+)?)";
String[] split = res.split(regEx);
答案 0 :(得分:0)
您可以使用此正则表达式捕获文本:
(?<=\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}\.\d{3} )(.*?)(?=(?: \d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}\.\d{3}|$))
并在第1组中抓取您的文字,即
matcher.group(1);
答案 1 :(得分:0)
你在分裂中只获得一个结果的原因是*运算符在正则表达式中是贪婪的。读一读这个好东西:http://www.regular-expressions.info/repeat.html