ndyzx 发表于 2012-3-16 00:42:09

[已解决]StringRegExp语名不解求教

本帖最后由 ndyzx 于 2012-3-16 11:56 编辑

下面一段代码中StringRegExp语名,最后一行表达式Image Count:\h+(\d+)中的\h+(\d+)怎么理解.If _IsWinPE() = 1 Then;选择模式
        $var = DriveGetDrive("ALL")
Else
        $var = DriveGetDrive("FIXED")
EndIf
If Not @error Then
        For $i = 1 To $var
                GUICtrlSetData($A_Combo1, $var[$i], $var);更新列表框参数
                If FileExists($var & "\hildr") Then;检查启动文件
                        $Running = "等待卸载操作..."
                Else
                        $Running = "等待安装操作..."
                EndIf
                If FileExists($var[$i] & "\sources\install.wim") Then;检查安装文件
                        Dim $Install = $var[$i]

                        $foo = Run(@ScriptDir & "\imagex /info " & $var[$i] & "\sources\install.wim", "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
                        ProcessWaitClose($foo)
                        $line = StdoutRead($foo)
                        Dim $array = StringRegExp($line, 'Image Count:\h+(\d+)', 3)

kk_lee69 发表于 2012-3-16 00:49:58

標題應該修改一下....不符合發文規定喔請看板規

nmgwddj 发表于 2012-3-16 00:50:16

本帖最后由 nmgwddj 于 2012-3-16 01:17 编辑

http://www.autoitx.com/thread-18544-1-1.html

对正则一窍不通,帮不到你。

lixiaolong 发表于 2012-3-16 01:35:43

回复 1# ndyzx

"Image Count:"后面有一个,或者多个【任何水平空白字符】(\h+)
一个或者多个数字(\d+),这个表达式的括号表示只匹配一个或者多个数值.

但是有条件,它只匹配前面有 Image Count:后面有一个,或者多个【任何水平空白字符】的后面的一个或者多个数字.

shqf 发表于 2012-3-16 09:52:55

本帖最后由 shqf 于 2012-3-16 09:54 编辑

StringRegExp()是一个函数,一个字符串处理的函数,函数功能是检查字串是否符合给定的正则表达式.
所问的表达式是正是一个正则表达式。代码中此函数功能是获取$line字符串中Image Count:后面的那串数字(并且去掉了数字前面的空格)。

ndyzx 发表于 2012-3-16 11:54:20

回复 5# shqf
非常感谢。

ndyzx 发表于 2012-3-16 11:55:54

回复 4# lixiaolong
非常感谢。

sleep365 发表于 2012-10-31 10:25:56

\h,\v是autoit自身的语法,在prel正则中好象没有啊。

annybaby 发表于 2012-11-29 15:55:44

回复 8# sleep365

有的~~

http://www.autoitx.com/forum.php?mod=viewthread&tid=36355&extra=
页: [1]
查看完整版本: [已解决]StringRegExp语名不解求教