TC官方合作论坛

 找回密码
 立即注册
查看: 847|回复: 8
打印 上一主题 下一主题

[已解决] TC的正则表达式也太蛋疼了吧,求高手帮忙

[复制链接]
跳转到指定楼层
楼主
发表于 2013-8-23 23:00:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我的要进行匹配的数据是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])

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

使用道具 举报

7#
发表于 2013-8-25 16:57:17 | 只看该作者
回复 6楼Antecer的帖子

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

使用道具 举报

沙发
发表于 2013-8-23 23:38:34 | 只看该作者
这样的情况 自己可以写个字符串处理的功能,也不错
回复 支持 反对

使用道具 举报

板凳
发表于 2013-8-24 05:45:17 | 只看该作者
正则的规则都那样
回复 支持 反对

使用道具 举报

地板
 楼主| 发表于 2013-8-24 07:51:40 | 只看该作者
难道TC的正则表达式不支持 “零宽断言” ?
回复 支持 反对

使用道具 举报

5#
发表于 2013-8-24 10:14:42 | 只看该作者
子表达式匹配
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2013-8-24 12:46:40 | 只看该作者
回复 5楼陌上青衣。的帖子

请详解,谢谢。
TC的帮助文档写得太模糊了,啥都没讲清楚,正则表达式和正则子表达式的介绍是一样的,完全看不懂啥意思。
回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2013-8-30 11:09:41 | 只看该作者
回复 7楼gopee的帖子

原来如此,说明里面把这个写上不就清楚明白了,真是的 = =|
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2013-8-30 11:22:02 | 只看该作者
原来正则子表达式才是真正的正则表达式 = =|
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-19 16:39 , Processed in 0.151001 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表