找回密码
 加入
搜索
查看: 1783|回复: 4

[已解决]如何正则匹配一个空白行

[复制链接]
发表于 2009-12-12 13:23:32 | 显示全部楼层 |阅读模式
本帖最后由 tan133 于 2009-12-15 02:19 编辑

$tmp=stringreplace($line," ","")
$tmp=stringreplace($tmp," ","")
$tmp=stringreplace($tmp,"        ","")
$tmp=stringreplace($tmp,@cr,"")
$tmp=stringreplace($tmp,@LF,"")
IF $tmp THEN
    msgbox (0,000,"这不是空白的")
ELSE
    msgbox (0,000,"这是空白的")
ENDIF
以上是我的写法,网上看到有这个正则好象可以,
不过,我不会写,反正写出来不对,
怎么写?求教
StringRegExp("          ", "^\s*", 4)

[/code]
发表于 2009-12-12 13:30:22 | 显示全部楼层
LZ把你的字符串发出来大家看看吧!
 楼主| 发表于 2009-12-12 17:47:16 | 显示全部楼层
本帖最后由 tan133 于 2009-12-12 19:34 编辑

$line="          ";包括英文空格,中文空格,TAB制表符各N个,顺序无规律
我就想了,如何用正则一句话匹配完了,不用象我这样REPLCE一堆
谢谢水木子大大关注
发表于 2009-12-12 18:37:24 | 显示全部楼层
$sSpaceW = " "
StringRegExp($sLine, "^[\s" & $sSpaceW & "]*$")

$sSpaceW 是全角空格。
 楼主| 发表于 2009-12-12 19:33:41 | 显示全部楼层
本帖最后由 tan133 于 2009-12-15 01:49 编辑

谢谢pusofalse大大
我还是不太懂,我先自学下,
一会儿搞懂了的话发完整的测试用的源代码
==========================
$array = StringRegExp("123","\d*",3)
   MsgBox(4096,"Error", $array[0]);成功
============================
$array = StringRegExp(" ","\s*",3);只有一个空格,英文状态下
   MsgBox(4096,"Error", $array[0]);失败
===========================
我回来给大家一个交待,
我的原意是想,这样完成的
FUNC _ISBLANK($LINE)
IF $JUSTICE THEN
;正则匹配出来,
;此行如果只含包括英文空格,中文空格,TAB制表符,竖行TAB,
;没有其他字符
   return $true
ELSE
    return $FALSE
ENDIF
ENDFUNC

网上找了半天资料,因为我水平的原因,都不行,搞得我没信心整下去了
不过,整出来这样一个成果,希望对大家有所启发
$s="123"
$str=StringRegExp($s,'\d*',3)
If $str[0] Then
    msgbox(0,000,$str[0])
EndIf

=====================
上面的我改过一下,
$s="         ";包括一个半角空格一个全角空格,一个TAB制表符
$str=StringRegExp($s,'\s*',3)
If $str[0] Then
    msgbox(0,000,$str[0])
EndIf
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-19 10:48 , Processed in 0.082452 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表