正则表达式 中的一个例子 帮忙解读一下
本帖最后由 lsq726 于 2009-6-27 18:49 编辑$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, "RegExp Test with Option 1 - " & $i, $array[$i])
Next
WEnd上面的代码 帮忙给详细解读一下。。
下面这段代码这样做 有什么作用? If @error = 0 Then
$nOffset = @extended
Else
ExitLoop
EndIf 帮助里的例子,没有细看帮助!你不可能长期靠这样问!
$nOffset = 1 ;声明并赋值,产生一个用于偏移值的变量
While 1 ;进入死循环
$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>', '<(?i)test>(.*?)</(?i)test>', 1, $nOffset) ;前一段是字符串,后一段是正则式,通过循环读取方式把符合:<test>***</test>这种格式中的***读出并存于数组
If @error = 0 Then ;如果上面的正则可取出字符(无错误),则
$nOffset = @extended ;将取出字符时同时得到的偏移赋值给偏移变量
Else ;否则(取不到字符)
ExitLoop ;就跳出此死循环
EndIf ;条件语句结尾(在条件语句有多于一行时,配套IF使用)
for $i = 0 to UBound($array) - 1 ;进入数量循环(从0到数组$array的内在‘长度值’,步长为1)
msgbox(0, "RegExp Test with Option 1 - " & $i, $array[$i]) ;用消息框逐个显示得到的字符
Next ;数量循环尾
WEnd ;死循环尾
页:
[1]