您的位置:程序门 -> .net技术 -> c#



求一正则表达式: 不允许连续输入三个相同的字母


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


求一正则表达式: 不允许连续输入三个相同的字母[已结贴,结贴人:leomaya]
发表于:2007-01-29 16:28:45 楼主
例如:
gdgabdsc,   正确
sgwaaausr,   错误
发表于:2007-01-29 16:38:341楼 得分:10
看你用在哪里了

if(regex.ismatch(yourstr,@ "([a-za-z])\1{2} "))
{
        //错误
}
else
{
        //正确
}
发表于:2007-01-29 16:44:422楼 得分:0
用在密码检验里面的
发表于:2007-01-29 16:50:293楼 得分:0
用在验证控件里麻烦些
^(([a-za-z])(?!\2{2}))+$
如果还有位数限制,把里面的+换成如下形式
{m,n}其中m为最小值,n为最大值
发表于:2007-01-29 16:50:354楼 得分:0
你上面的例子能这样用么?
string   pattern=@ "(?!([a-za-z])\1{2}) "
if(regex.ismatch(teststring,   pattern))
{
//正确
}
else
{
//错误
}
发表于:2007-01-29 16:53:035楼 得分:5
^(([a-za-z])(?!\2{2}))+$
大于
([a-za-z])\1{2} ")取反哦,允许一些特殊字符串
发表于:2007-01-29 17:00:486楼 得分:0
string   pattern=@ "(?!([a-za-z])\1{2}) "
你这样写是非捕获组,不匹配任何内容的,如果想单独写pattern,直接把里面的提出来就行了
string   pattern   =   @ "([a-za-z])\1{2} ";
另外,如果你要if的内容为正确,汗,在if里取反就行了
if(   !regex.ismatch(teststring,   pattern)   )


^(([a-za-z])(?!\2{2}))+$
大于
([a-za-z])\1{2} ")取反哦,允许一些特殊字符串
----------------------------
不明白楼上的意思
发表于:2007-01-29 17:06:347楼 得分:0
正则中^表示取反,不是!
发表于:2007-01-29 17:10:118楼 得分:0
to   lxcnn(过客):
因为我的pattern里面还有其他表达式是if里面为正确的,   想统一起来嘛^^
发表于:2007-01-29 17:14:129楼 得分:0
因为我的pattern里面还有其他表达式是if里面为正确的,   想统一起来嘛^^
------------------------
还有什么要求一起说下,给你改下吧


正则中^表示取反,不是!
------------------------
^用在不同位置有不同的意义的,(?!***)为正向预搜索,不是取反
发表于:2007-01-29 17:15:0110楼 得分:5
@ "(\w)\1{2,} "
发表于:2007-01-29 17:17:1811楼 得分:0
因为我的pattern里面还有其他表达式是if里面为正确的,   想统一起来嘛^^
------------------------
还有什么要求一起说下,给你改下吧
=================================================

1.   长度为6-12位
2.   必须包含数字与字母
3.   不能连续输入三个相同的字母,   但允许连续三个相同的数字
发表于:2007-01-29 17:29:3712楼 得分:0
呵呵,   找到了
string   pattern   =   @ "^(?=.*\d+)(?=.*[a-za-z]+)(?!.*?([a-za-z]+?)\1\1).{6,12}$ ";

anyway,   感谢各位


快速检索

最新资讯
热门点击