【已解决】正则问题求助
本帖最后由 xms77 于 2012-4-13 20:11 编辑我想检查用户输入的字符串,只能满足如下要求:
DSD,SAG,GGH,....(重复前面的格式 3位连续字符串用逗号相隔)或者
GHH(就只有一个3位连续的字符串,有没有逗号无所谓。)
用StringRegExp("DSD,SAG,GGH,RTYU",'\w{3},{0,1}',0)不行,连续的4位字符串也能匹配。 本帖最后由 user3000 于 2012-4-13 17:01 编辑
StringRegExp($Input ,'^(?:{3},)?{3}(?:{3},)?$', 0) 回复 1# xms77
不好意思, 二楼的代码还是有错, 那个逗号的位置没注意'放'对位置!
下面这个, 自己已测试过, 可以成功验证到.StringRegExp($Input ,'^(?:{3},)?{3}(?:,{3})?, 0) 回复 3# user3000
晕了, 粘帖上来的, 怎么还少了一个 $ 美元字符?
应该在最后一个 问题 加上这个字符.
其名其妙了, 直接复制粘贴还能把我的字符吃了一个! 本帖最后由 lixiaolong 于 2012-4-13 17:52 编辑
回复 1# xms77 $Input = "DSD,SAG,GGH,RTYU"
$a = StringRegExp($Input, '^(\w{3},?)+(?=(?<!,)$)', 0)
MsgBox(0, "", $a)GHH(就只有一个3位连续的字符串,有没有逗号无所谓。)
有没有逗号无所谓用这个就可以.^(\w{3},?)+$ 回复 3# user3000
谢谢3000兄,数字也是合法的字符。我试试改编一下你的代码试试! 回复 5# lixiaolong
xiaolong兄,请教$是什么意思?另外如果有空格也允许,只要3位的字符串是连续的就行,该怎么修改? 回复 5# lixiaolong
貌似这样可以允许水平空白符的存在了。感谢你的帮忙!
^(\h*\w{3}\h*,?)+$ 回复 4# user3000
呵呵,我好像吃到一个$,但是不知道在这里是什么意思,糊涂啊! 回复 7# xms77
$ 和 \Z 是一个意思的~ 回复 10# lixiaolong
xiaolong兄,发现个问题,好像如果连续6位的字符串也能匹配? 回复 10# lixiaolong
我说好像没有看到$的说明,\Z就明白了。 回复 11# xms77
后面不是\w的3个\w就行了~^(\h*\w{3}\h*(?!\w),?)+$ 回复 13# lixiaolong
再次感谢,看来我正则还需要加强练习啊!
页:
[1]