tan133 发表于 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)

水木子 发表于 2009-12-12 13:30:22

LZ把你的字符串发出来大家看看吧!

tan133 发表于 2009-12-12 17:47:16

本帖最后由 tan133 于 2009-12-12 19:34 编辑

$line="          ";包括英文空格,中文空格,TAB制表符各N个,顺序无规律
我就想了,如何用正则一句话匹配完了,不用象我这样REPLCE一堆
谢谢水木子大大关注

pusofalse 发表于 2009-12-12 18:37:24

$sSpaceW = " "
StringRegExp($sLine, "^[\s" & $sSpaceW & "]*$")

$sSpaceW 是全角空格。

tan133 发表于 2009-12-12 19:33:41

本帖最后由 tan133 于 2009-12-15 01:49 编辑

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

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

=====================
上面的我改过一下,
$s="         ";包括一个半角空格一个全角空格,一个TAB制表符
$str=StringRegExp($s,'\s*',3)
If $str Then
    msgbox(0,000,$str)
EndIf
页: [1]
查看完整版本: [已解决]如何正则匹配一个空白行