lsq726 发表于 2009-6-27 18:42:15

正则表达式 中的一个例子 帮忙解读一下

本帖最后由 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

liongodmien 发表于 2009-6-29 10:21:12

帮助里的例子,没有细看帮助!你不可能长期靠这样问!

$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]
查看完整版本: 正则表达式 中的一个例子 帮忙解读一下