本帖最后由 afan 于 2010-7-19 12:47 编辑
回复 13# itljl
可能是对其后面的标志不太理解吧,可以看看以下这个例子;====================示例 0, 返回 1(匹配) 或 0(不匹配)
$x = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 0)
If $x = 1 Then
MsgBox(0, '正则测试 标志值 0 ', '匹配')
Else
MsgBox(0, '正则测试 标志值 0 ', '不匹配')
EndIf
;====================示例 1, 返回匹配项目的数组.并使用偏移量
$nOffset = 1
While 1
$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 1, $nOffset)
If @error = 0 Then
$nOffset = @extended
Else
ExitLoop
EndIf
For $i = 0 To UBound($array) - 1
MsgBox(0, '正则测试 标志值 1 - ' & $i, $array[$i])
Next
WEnd
;==================示例 2, 返回包括完整匹配的数组.(Perl/ PHP 样式).
$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 2)
For $i = 0 To UBound($array) - 1
MsgBox(0, '正则测试 标志值 2 - ' & $i, $array[$i])
Next
;==================示例 3, 返回全局匹配的数组.
$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 3)
For $i = 0 To UBound($array) - 1
MsgBox(0, '正则测试 标志值 3 - ' & $i, $array[$i])
Next
;==================示例 4, 返回包括完整匹配(Perl/ PHP 样式)和全局匹配的数组.
$array = StringRegExp('F1oF2oF3o', '(F.o)*?', 4)
For $i = 0 To UBound($array) - 1
$match = $array[$i]
For $j = 0 To UBound($match) - 1
MsgBox(0, '正则测试 标志值 4 - ' & $i & ',' & $j, $match[$j])
Next
Next
|