求助攻,正则表达式
上次匹配正则得到了一位版主大大的支持,搞出来了一部分,详见http://bbs.csdn.net/topics/390636368帖子,在此不再阐述。
今天又遇到问题了,例如HTML页面中有两条记录:
{"id":XXX,"type":1,"fakeid":"XXX","nick_name":"天空","date_time":xxx,"content":"你好","source":"biz","msg_status":2,"has_reply":0,"refuse_reason":""}
{"id":XXX,"type":1,"fakeid":"xxxx","nick_name":"海洋","date_time":xxx,"content":"你也好","source":"","msg_status":4,"remark_name":"haiyang","has_reply":0,"refuse_reason":""}
大家可以看到这两条记录的明显区别是第二条当中的msg_status为4,然后就是多了一个"remark_name":"haiyang"。在这里我使用了
进行匹配,但是为什么只能取到第一条记录而取不到第二条?两条中都msg_status,请问这个是为什么? 正则表达式 ASP.NET
\"id\":\\d+,\"type\":\\d+,\"fakeid\":\"[^\"]+\",\"nick_name\":\"[^\"]+\",\"date_time\":\\d+,\"content\":\"[^\"]+\",\"source\":\"[^\"]+\",\"msg_status\":\\d+
[解决办法]
date_time\":\\d+,
这里为什么用\\d+
这会匹配成\\(表示单个的\)以及任意个d(d+)
[解决办法]
将下边红色部分的+修改成*即可
原因就是:因为你的第二条数据中source":"" 双引号内无字符
\"id\":\\d+,\"type\":\\d+,\"fakeid\":\"[^\"]+\",\"nick_name\":\"[^\"]+\",\"date_time\":\\d+,\"content\":\"[^\"]+\",\"source\":\"[^\"]+\",\"msg_status\":\\d+