杨永全 发表于 2008-10-30 10:01:51

请教一个正则表达式的写法

<div id="postmessage_540" class="t_msgfont"><div id="postmessage_540" class="t_msgfont">
目的是要取得id,请帮忙写一下这个正则,多谢。
另外不知道我这样写的错误在什么地方,总是不能通过。
<div id="(postmessage_d+)" class="t_msgfont">

liongodmien 发表于 2008-10-30 11:18:27


Local $show = '', $offset = 1, $Strings = '<div id="postmessage_540" class="t_msgfont"><div id="postmessage_540" class="t_msgfont">'
Do
        $String = StringRegExp($Strings, '(?U)<div id="(.+)" class', 1, $offset)
        if @error = 0 then
                $offset = @extended
        Else
                ExitLoop
        EndIf
        $show &= $String & @CRLF
Until 0
MsgBox(0, '', $show)


[ 本帖最后由 liongodmien 于 2008-10-30 11:21 编辑 ]

pcbar 发表于 2008-10-30 13:05:04

$a='<div id="postmessage_540" class="t_msgfont"><div id="postmessage_540" class="t_msgfont">'
$b=StringRegExp($a,'(?<=id=").+?(?=")',2)
MsgBox(0,'test',$b)

juyz 发表于 2008-11-12 20:53:23

回复 3# pcbar 的帖子

$a='<div id="postmessage_540" class="t_msgfont"><div id="postmessage_541" class="t_msgfont">'
$b=StringRegExp($a,'(?<=id=").+?(?=")',3)
for $i = 0 to UBound($b) - 1
    msgbox(0, $i, $b[$i])
Next

我也很喜欢用零宽断言。

真会走路的废柴 发表于 2008-11-15 09:16:28

$b=StringRegExp($a,'(?<=id=").+?(?=")',3)
没明白 (?<=id=") 是什么意思
应该是 (?!id=") 吧?

liongodmien 发表于 2008-11-16 15:27:30

原帖由 真会走路的废柴 于 2008-11-15 09:16 发表 http://www.autoitx.com/images/common/back.gif
$b=StringRegExp($a,'(?<=id=").+?(?=")',3)
没明白 (?<=id=") 是什么意思
应该是 (?!id=") 吧?
这个是正则表达式的一个匹配模式,在AU3的帮助里面没有提到,但在其它的地方有,它又可以在AU3里用,这是足够让不知道的人奇怪好久的...

jiangzhanye 发表于 2008-11-16 15:28:58

有点不明白楼上的
页: [1]
查看完整版本: 请教一个正则表达式的写法