java 正则表达式,懒惰匹配 以指定日期格式开头,求大神指点,50分奉上,还望不吝赐教

情况是这样的,有一个txt文本,里面的内容都是“2014-02-2709:52:41.608+一段内容A”、“2014-12-0711:42:41.908+一段内容B”、... 情况是这样的 ,有一个txt文本,里面的内容都是“2014-02-27 09:52:41.608+一段内容A”、“2014-12-07 11:42:41.908+一段内容B”、“2014-12-17 13:45:11.958+一段内容C”这样的很多段连接到一起,这里的内容A,内容B和内容C之间各种换行符,制表符,空格参杂其中,很多且十分杂乱。

现在想要按行读取,每读取一行,就用正则表达式,懒惰匹配一下,如果符合“2014-02-27 09:52:41.608+一段内容A”+“2014-12-07 11:42:41.908”+“不是结尾”,就符合条件,把一段内容A取出来,继续匹配,直到结束。

那么问题来了,符合“2014-02-27 09:52:41.608+一段内容A”+“2014-12-07 11:42:41.908”+“不是结尾”的正则表达式完全不会写啊

请问一下大神,我该怎么做?
每个”2014-02-27 09:52:41.608“这样的字符串都是一行的开头。
展开
 我来答
匿名用户
2014-12-30
展开全部
String regex = "\\d{4}([-]\\d{2}){2}\\s\\d{2}([:]\\d{2}){2}[.]\\d{3}";//2014-12-17 13:45:11.958 的正则

用这个区匹配就好了
追问
你这个正则表达式只能匹配到”2014-02-27 09:52:41.608“这样的字符串
你可能不明白我的意思,我想要匹配这个字符串以及其后面的部分,直到下一个”2014-02-27 09:52:41.608“开始的位置结束。
估计得用什么懒惰匹配或者贪婪匹配,我也不大懂,拜托了
追答
String regex = "\\d{4}([-]\\d{2}){2}\\s\\d{2}([:]\\d{2}){2}[.]\\d{3}[^\\d{4}((-)\\d{2}){2}\\s\\d{2}(:\\d){2}(.)\\d{3}]*";
//匹配符合2014-12-17 13:45:11.958+下一个regex的正则

这个算是懒惰匹配吧。新手,可能还有其它更效率的方法。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式