C#中文本处理

来源:百度知道 编辑:UC知道 时间:2024/06/18 06:10:07
1合肥11:4511:4500:0002合肥西12:0512:1300:20193安庆西14:2214:2502:371564黄梅16:2816:3204:432745九江17:1817:2005:333276庐山17:3817:5405:533467南昌19:1119:2707:264628向塘19:4619:5008:014909吉安22:3222:3610:4768810兴国00:1600:1912:3180111赣州01:1401:1813:2987412信丰02:0602:1014:2193713龙川04:3404:4416:49111514河源05:3905:4217:54119015惠州06:3606:3918:51127016东莞东07:1907:1919:341324

切分后:
1 合肥 11:45 11:45 00:00 0
2 合肥西 12:05 12:13 00:20 19
3 安庆西 14:22 14:25 02:37 156
剩下都是和这个一样的
谢谢了 没思路了
能细说一下吗
怎么判断,我不会,见笑了

因为中间这部分(合肥 11:45 11:45 00:00)字数比较固定,如都是地名+3个时间段(XX:XX)因此文本可以用正则这样处理,写正则
\D*(\d{2}:\d{2}){3}
得出
合肥11:4511:4500:00
合肥西12:0512:1300:20
...
然后
其它的同理,再比配出后面的数字,前面的数字序号可以用循环添上去

Ps:你文本的结构造成了正则的难写,如果文本可以改为(即多加些空格用来分隔)
1 合肥 11:45 11:45 00:00 0 2 合肥西 12:05 12:13 00:20 19 3 安庆西 14:22 14:25 02:37 156 4 黄梅 16:28 16:32 04:43 274 5 九江 17:18 17:20 05:33 327 6 庐山 17:38 17:54 05:53 346 7 南昌 19:11 19:27 07:26 462 8 向塘 19:46 19:50 08:01 490 9 吉安 22:32 22:36 10:47 688 10 兴国 00:16 00:19 12:31 801 11 赣州 01:14 01:18 13:29 874 12 信丰 02:06 02:10 14:21 937 13 龙川 04:34 04:44 16:49 1115 14 河源 05:39 05:42 17:54 1190 15 惠州 06:36 06:39 18:51 1270 16 东莞东 07:19 07:19 19:34 1324
这样就简单多了,一句正则就匹配出来了
\d+\s\D*\s(\d{2}:\d{2}\s){3}\d*

你这个难度还可以,可以用汉字符判断拆分