正则表达式 救命
003 Mon Jan 27 08:12:09 2014 282(这里是注释:需要在这里断开,前面的数字282属于003,以此类推)004 Mon Jan 27 08:12:09 2014 82(这里是注释:需要在这里断开)005 Mon Jan 27 08:12:09 2014 282(这里是注释:需要在这里断开)003 Mon Jan 27 08:12:09 2014 0(这里是注释:需要在这里断开)001
设备编号组成由 001至016,全部数据有十万多条
这是我写的
现在的问题 参数为零 下面的就没法匹配
(?<id>001|002|003|004|005)[ A-Za-z]{1,6}(?<date>[A-Za-z0-9 :]{20})[ ](?<value>[-1-9]{1,6})
003 Mon Jan 27 08:12:09 2014 282003 Mon Jan 27 08:12:09 2014 82003 Mon Jan 27 08:12:09 2014 282003 Mon Jan 27 08:12:09 2014 123001
------解决方案--------------------(?<id>00[1-9]
------解决方案--------------------01[0-6])\s*(?<date>\w*\s*\w*\s*\d{2}\s*\d{2}:\d{2}:\d{2}\s*\d{4})\s*(?<value>\d*)
------解决方案--------------------参数为0什么意思?
这个表达式可以通过你给出的数据。
(?<id>(?:001
------解决方案--------------------002
------解决方案--------------------003
------解决方案--------------------004
------解决方案--------------------005))\s+(?:Mon
------解决方案--------------------Fri)\s+(?:Jan
------解决方案--------------------Oct)\s+(?<date>\d+\s+\d+:\d+:\d+\s+\d+)\s+(?<value>\d+)(?=(001
------解决方案--------------------002
------解决方案--------------------003))
下面这种也能通过
003 Mon Jan 27 08:12:09 2014 282003 Mon Jan 27 08:12:09 2014 82003 Mon Jan 27 08:12:09 2014 282003 Mon Jan 27 08:12:09 2014 0001
下面这种,严格来说通不过,会留下最后一条数据,但是你可以再用代码处理,如果一定要用正则,可以做到,另外搞一个分支就可以:
003 Mon Jan 27 08:12:09 2014 282003 Mon Jan 27 08:12:09 2014 82003 Mon Jan 27 08:12:09 2014 282003 Mon Jan 27 08:12:09 2014 123