TC官方合作论坛

标题: TC的正则表达式也太蛋疼了吧,求高手帮忙 [打印本页]

作者: Antecer    时间: 2013-8-23 23:00
标题: TC的正则表达式也太蛋疼了吧,求高手帮忙
我的要进行匹配的数据是xml文件内容。里面有大量的 <id>23</id>  <name>antecer1</name> <name>antecer2</name> <name>antece3r</name>
等等标签信息,请问我要怎么用正则表达式匹配两个标签之间的数据?

目前我使用的是一种很蛋疼很不愉快的方法:
变量 返回数组
num=字符串.正则表达式匹配("<name>(.*?)</name>",匹配内容,返回数组)
for(i=0;i<num;i++)
     code1=字符串.查找字符串(返回数组[0],"<name>")
     code2=字符串.查找字符串(返回数组[0],"</name>")
     name=字符串.截取(返回数组[0],code1+6,code2)
     辅助.消息框(name)
endfor

请问高手有没有一种比较好用的方法,能够直接匹配标签内的数据?
PS:亲测如下匹配方式得到的结果是空的
变量 返回内容
字符串.正则表达式匹配("(?<=<name>)(.*?)(?=</name>)",匹配内容,返回内容)
辅助.消息框(返回内容[0])

这样匹配,出来的内容是空的...

作者: 大脚    时间: 2013-8-23 23:38
这样的情况 自己可以写个字符串处理的功能,也不错
作者: sugar987009    时间: 2013-8-24 05:45
正则的规则都那样
作者: Antecer    时间: 2013-8-24 07:51
难道TC的正则表达式不支持 “零宽断言” ?
作者: 陌上青衣。    时间: 2013-8-24 10:14
子表达式匹配
作者: Antecer    时间: 2013-8-24 12:46
回复 5楼陌上青衣。的帖子

请详解,谢谢。
TC的帮助文档写得太模糊了,啥都没讲清楚,正则表达式和正则子表达式的介绍是一样的,完全看不懂啥意思。
作者: gopee    时间: 2013-8-25 16:57
回复 6楼Antecer的帖子

兄弟刚好我也碰到一样的问题,搞了半天才搞定,你这个需求应该这样写:
  1. num = 字符串.正则子表达式匹配("<name>(.*?)</name>", source, retArray)
复制代码
正则子表达式匹配跟正则表达式匹配不一样的就是,不包含表达式的内容.TC对正则的支持确实不太合规矩
试试看吧,我也是新手希望能多多交流,相互学习。
作者: Antecer    时间: 2013-8-30 11:09
回复 7楼gopee的帖子

原来如此,说明里面把这个写上不就清楚明白了,真是的 = =|
作者: Antecer    时间: 2013-8-30 11:22
原来正则子表达式才是真正的正则表达式 = =|




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1