找回密码
 加入
搜索
查看: 8003|回复: 9

[系统综合] 正则问题,开始与结束怎么匹配?

  [复制链接]
发表于 2012-5-31 16:19:48 | 显示全部楼层 |阅读模式
<th class="new">
<span class="xst">
 <a href="http://www.discuz.net/thread-2702805-1-1.html" onclick="atarget(this)">Discuz! 案例:安卓网升级Discuz! X2  注册用户突破1000万</a>
</span>
<img src="static/image/filetype/image_s.gif" alt="attach_img" title="图片附件" align="absmiddle" />
<img src="static/image/common/agree.gif" align="absmiddle" alt="agree" title="帖子被加分" />
<span class="tps"> ...<a href="http://www.discuz.net/thread-2702805-2-1.html">2</a><a href="http://www.discuz.net/thread-2702805-3-1.html">3</a><a href="http://www.discuz.net/thread-2702805-4-1.html">4</a><a href="http://www.discuz.net/thread-2702805-5-1.html">5</a><a href="http://www.discuz.net/thread-2702805-6-1.html">6</a>..<a href="http://www.discuz.net/thread-2702805-7-1.html">7</a></span>
 
<p class="mtn xg1">
<a href="http://www.discuz.net/home.php?mod=space&uid=1600634">锦瑟99</a>   发表于: <span>2012-3-21</span>   查看: 9462   回复: <a href="http://www.discuz.net/thread-2702805-1-1.html">65</a>
</p>
</th>
我要匹配<th class="new">这里面的内容</th>
 楼主| 发表于 2012-5-31 16:21:30 | 显示全部楼层
正则里面的
/A
/Z不懂怎么使用

\A(<th class="new">).*\Z(</th>)
这样子匹配不了呢
发表于 2012-5-31 17:10:57 | 显示全部楼层
我的方法是这样匹配:'<th class="new">([\s|\S]+)</th>'
发表于 2012-5-31 17:19:11 | 显示全部楼层
回复 2# heavenm
$t = StringRegExp($txt, '(?s)<th class="new">(.*)</th>', 3)

可以不用限定开始或结束, 一定要的话应该这样限定:
$t = StringRegExp($txt, '(?s)(?<=<th class="new">)(.*)(?=</th>)', 3)

我想初接触正则者, 对于字符串的'开始' 及 '结束'的认识有个误区:
他们往往不把换行符或回车符当作字符串的一部分, 以致认为字符串的'开头'就是每行可见字符的开头...
你给出的数据源自于HTML源码, 它的开头可不会是这些字符...

评分

参与人数 1金钱 +30 贡献 +3 收起 理由
xms77 + 30 + 3 学习了

查看全部评分

发表于 2012-5-31 21:22:41 | 显示全部楼层
回复 4# user3000
学习了!
发表于 2012-5-31 21:34:36 | 显示全部楼层
学习4楼大哥的代码了,很详细
 楼主| 发表于 2012-6-2 19:21:13 | 显示全部楼层
本帖最后由 heavenm 于 2012-6-2 19:36 编辑

?<=
是神马意思??
user3000真好人啊,帮助里面没看见,开始与结束可以写成这样子?
发表于 2012-6-2 20:48:01 | 显示全部楼层
回复 7# heavenm


不是开始与结束, 而是 前面 与 后面
AU3的正则帮助只是最基础的东西, 想学好学精要参考别的正则教程, 以及分析高手们的正则例子!
加油吧!
 楼主| 发表于 2012-6-2 22:48:41 | 显示全部楼层
(?<=href=")([:/\S]*)"
匹配所有URL,哈继续完善
发表于 2012-6-3 22:48:35 | 显示全部楼层
?
heavenm 发表于 2012-6-2 19:21


?<=是反向预查,意思是要匹配的文本必须满足此子模式后面的表达式,其次此子模式不参与匹配。或者这样理解,首先进行普通匹配,然后从匹配文本中将子模式内的文本排除掉。

评分

参与人数 1金钱 +10 收起 理由
user3000 + 10 极标准的解释, 就是容易让新手糊涂!

查看全部评分

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-6 14:08 , Processed in 0.094876 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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