关于正则请教一下[已解决]
本帖最后由 m765555 于 2011-5-11 09:42 编辑$array= StringRegExp($sHTML, "<(?i)strong class=fs_14>(.*?)</(?i)strong>",1) 中
的正则"<(?i)strong class=fs_14>(.*?)</(?i)strong>"不明白到底是什么意思,对正则不明白,请各位兄弟指点一下,给解释一下这句话正则是什么意思?特别是strong什么意思? 回复 1# m765555
这个正则有问题吧.
strong class中间有空格?不是用/h或/s来表示吗?
(?i)不区分大小写
如果是"<(?i)strong\hclass=fs_14>(.*?)</(?i)strong>"这样写倒可以理解为匹配"<strong class=fs_14>这里是要匹配的内容</strong>". 代码是正确的呀,有空格的
#include <IE.au3>
Filedelete ("Tq.txt")
$Url="http://www.soso.com/tb.q"
$oIE = _IECreate ($url, 0, 0)
$sHTML = _IEBodyReadHTML ($oIE)
$array= StringRegExp($sHTML, "<(?i)strong class=fs_14>(.*?)</(?i)strong>",1)
for $i = 0 to UBound($array) - 1
$tqtemp = $array[$i]
Next
$tqtoday = StringReplace($tqtemp, " ", " ")
msgbox (32,"天气",$tqtoday)
_IEQuit ($oIE) 还是没有搞懂这句代码的意思,没明白,呵呵,兄弟可否详细点 "<(?i)strong class=fs_14>(.*?)</(?i)strong>"
求解,急 查看了一下源网站的源代码是这样的<strong class="fs_14">小雨,8℃</strong>
有些不明白了,fs_14是有引号括起来的,可是正则这样写怎么也能匹配呢?
"<(?i)strong class=fs_14>(.*?)</(?i)strong>" 本帖最后由 lixiaolong 于 2011-3-22 14:08 编辑
回复 6# m765555
"<(?i)strong class=fs_14>(.*?)</(?i)strong>"
匹配最短的,以<(?i)strong class=fs_14>开始,以</(?i)strong>结束的字符串.
(?i) = 不区分大小写.
如果字符是<strong class="fs_14">小雨,8℃</strong>
上面的正则是匹配不了. 本帖最后由 lixiaolong 于 2011-3-22 14:19 编辑
回复 6# m765555
我看了那个网址的源代码,是<strong class="fs_14">小雨,8℃</strong>.
但你看一下用你的代码获取的源代码
$Url="http://www.soso.com/tb.q"
$oIE = _IECreate ($url, 0, 0)
$sHTML = _IEBodyReadHTML ($oIE)
ClipPut($sHTML);写入文本到剪贴板.
这里的源代码是<strong class=fs_14>小雨,8℃</strong>.
所以用这个正则可以匹配的.
"<(?i)strong class=fs_14>(.*?)</(?i)strong>" "(.*?)"
求解,急
m765555 发表于 2011-3-22 13:50 http://www.autoitx.com/images/common/back.gif
就是匹配内容
strong是一个html标签,意思是加粗。
class=fs_14 是一个css类,表示strong下的一个类,他定义了strong更详细的表现形式。 感谢,感谢各位大侠各位兄弟伙,呵呵
不过还有一事不明,为什么用代码获取的代码中class="fs_14"没有引号呢,直接打开网站,点查看源代码就有双引号呢?? 本帖最后由 love5173 于 2011-3-22 22:13 编辑
{:face (280):}回复 2# 3mile
空格是\h,我知道你是手误,但是我们要严谨,避免误导新人
另外中间匹配的时候用到了贪婪属性?,特别是新人一定要注意,*+类得元字符在不加?的时候是最大匹配的,切记!
页:
[1]