newuser 发表于 2011-1-5 15:55:07

[已解决]正则:\b和\s匹配的结果为什么不同?

本帖最后由 newuser 于 2011-1-5 15:57 编辑

#cs

文本内容如下:
干县令,其于大达亦远矣。”“县”乃古“悬”字,高也;“令”,美也,“干”,追求。是说举着细小的钓竿钓绳,奔走于灌溉用的沟渠之间,只能钓到泥鳅之类的小鱼,而想获得大鱼可就难了。靠修饰琐屑的言论以求高名美誉,那和玄妙的大道相比,可就差得远了。春秋战国时,学派林立,百家争鸣,许多学人策士为说服王侯接受其思想学说,往往设譬取喻,征引史事,巧借神话,多用寓言,以便修饰言说以增强文章效果。庄子认为此皆微不足道,故谓之“小说”,即“琐屑之言,非道术所在”“浅识小道”,也就是琐屑浅薄的言论与小道理之意,正是小说之为小说的本来含义。
希望能匹配出用户名:3-16位(有大小写字母_ -)组成;希望能匹配出密码:6-18位(组成同用户名标准)
user1: 1983_zougk
user2: yanghh-200019
pw1:   a123_vb-new
pw2:   mylove_-1979
干县令,其于大达亦远矣。

#ce

#include<array.au3>
Local $Str
_Openfile("新建文本文档.txt")
;$Results=StringRegExp($Str,"\b{8,16}\b",3)
$Results = StringRegExp($Str, "\b{8,16}\b", 3)
_ArrayDisplay($Results)
$Results = StringRegExp($Str, "\s{8,16}\s", 3)
_ArrayDisplay($Results)


Func _Openfile($txtfile)
        $Open=FileOpen($txtfile)
    If    $Open=-1 Then
          MsgBox(0,"错误提示","文件没有被打开或打开时发生错误")
          Exit
    EndIf
    ;Local $Str=FileRead($Open)       
        $Str=FileRead($Open)        ;滥用 Local 就无法显示,找了半天啊!
        FileClose($Open)
EndFunc
为什么第2个正则无法匹配出: a123_vb-new ?
我的失误,打开的文件错误,抱歉!

sxd 发表于 2011-1-5 16:10:33

\b、 $、^ 等只是匹配位置(空隙),不包含任何字符,该了了吧~
afan 发表于 2010-12-31 12:13 http://www.autoitx.com/images/common/back.gif

应该就是这个原因吧
页: [1]
查看完整版本: [已解决]正则:\b和\s匹配的结果为什么不同?