找回密码
 加入
搜索
查看: 5750|回复: 13

[AU3基础] 关于网页正则表达式取数据请教

  [复制链接]
发表于 2012-8-1 09:09:09 | 显示全部楼层 |阅读模式
本帖最后由 小小盘 于 2012-8-1 09:12 编辑

想从论坛批量下载帖子需取" class="t_msgfont"><br>之间的内容,用正则表达式:" class="t_msgfont">(?s)<br>,不能筛选出,请各位老师指教

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-8-1 09:42:48 | 显示全部楼层
(?s)(?<=" class="t_msgfont">).*?(?=<br>)
 楼主| 发表于 2012-8-1 09:51:50 | 显示全部楼层
昨天上午试了一上午,谢谢老师帮忙,
发表于 2012-8-1 14:48:00 | 显示全部楼层
回复 2# haijie1223


    说实话,没看懂 ?<= 和 ?= 的用法。StringRegExp的帮助好像没有。
发表于 2012-8-1 15:16:26 | 显示全部楼层
haijie1223 发表于 2012-8-1 09:42



    .*的后面加个?请问是代表什么呢

.*?和.+有何不同呢
发表于 2012-8-1 15:32:41 | 显示全部楼层
第N次看到正则表达式这个概念了,感觉很有用,但还是一头雾水,加油啊!
发表于 2012-8-1 16:07:10 | 显示全部楼层
本帖最后由 xiehuahere 于 2012-8-1 16:16 编辑

回复 5# xiaowo


这个我知道,可以告诉你。

.*?
. 匹配任意单字符,默认不包括换行符。但这里前面加了(?s),. 就也可以匹配换行符了。因为考虑到" class="t_msgfont">和<br>之间的内容可能换行,所以这样做是很必要的。

* 重复前一个字符0次或多次。这里的前一个字符就是 . 所匹配的任意单字符。

? (在一个重复字符之后) 查询最小范围匹配代替最大范围。这就是帮助里的原话。意思是前面 .* 匹配的范围不包含前面的" class="t_msgfont">和后面的<br>,就是所谓的最小匹配,匹配出来的字串最短。
  

.+
就是重复前一个字符至少1次。这里的前一个字符就是 . 所匹配的任意单字符。

简单说,最主要的区别就是 * 和 + 的区别。
.* 匹配的东西可以为空(0次或多次,0次的时候就是空),.+匹配的内容一定非空(至少出现1次)。
发表于 2012-8-1 16:11:21 | 显示全部楼层
回复 4# xiehuahere


(?=exp) 匹配exp前面的位置
(?<=exp) 匹配exp后面的位置
发表于 2012-8-1 16:12:37 | 显示全部楼层
回复 5# xiaowo


    a.*?b匹配最短的,以a开始,以b结束的字符串
发表于 2012-8-1 16:15:09 | 显示全部楼层
回复 8# haijie1223


    多谢!! 这样看起来很合理。
那个《正则表达式30分钟入门教程》里有,看来au3支持的正则绝不仅是帮助里说的那些。
发表于 2012-8-1 16:16:33 | 显示全部楼层
回复 9# haijie1223


    原来如此,受教了
发表于 2012-8-1 16:18:42 | 显示全部楼层
回复  xiaowo


这个我知道,可以告诉你。

.*?
. 匹配任意单字符,默认不包括换行符。但这里前面加 ...
xiehuahere 发表于 2012-8-1 16:07



    我也看了《正则表达式30分钟入门教程》,里面没有提到(?s)和(?i)这些,请问这些是在哪里看到的
发表于 2012-8-1 16:22:39 | 显示全部楼层
回复 12# xiaowo


    这些在autoit帮助文件里有,看看 StringRegExp 函数的帮助说明。
发表于 2012-8-1 16:25:30 | 显示全部楼层
回复  xiaowo


    这些在autoit帮助文件里有,看看 StringRegExp 函数的帮助说明。
xiehuahere 发表于 2012-8-1 16:22



    看到了,谢谢,原来后面有部分中文的呀,我就看前面几个是E文的就没往下翻了……求翻译呀
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-2 12:24 , Processed in 0.084552 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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