求正则达人一条正则

davidcoffee 2013-07-15 06:48:06
密码6到20位可以包含!#$%等特殊符号必须包含大小英文和数字
例如aa123bb,aa123,123aa这种都行,不允许纯数字或者纯大小写英文,现在写的那种是
^[\@A-Za-z0-9\!\#\$\%\^\&\*\.\~]{6,20}$但是不能满足字母英文同时存在的要求,求个正则达人给个思路~3Q~
...全文
152 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
davidcoffee 2013-07-16
  • 打赏
  • 举报
回复
引用 8 楼 q107770540 的回复:
(?i)表示 忽略大小写 上边的,可能原因是一些特殊字符要转义
好的,结贴了~
shawn_yang 2013-07-16
  • 打赏
  • 举报
回复
其实本例中不应该忽略大小写
q107770540 2013-07-16
  • 打赏
  • 举报
回复
(?i)表示 忽略大小写 上边的,可能原因是一些特殊字符要转义
shawn_yang 2013-07-16
  • 打赏
  • 举报
回复
(?i) 忽略大小写
davidcoffee 2013-07-16
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
思路上,就是采用排除法,先排除是全是英文的,再排除全是数字的情况,最后再排除全是特殊字符的 剩下的肯定是你想要的 2楼的基本上已经可以了,不过最好加个排除特殊字符的:
string pattern = @"(?i)^(?![a-z]+$)(?!\d+$)(?![!@#$%^&*()]+$)[a-z\d!@#$%^&*()]+$";
版主想问下我在正则的文档里好像没找到
(?i);
这个符号的意义想问下这个是表示什么含义好像在regexbuddy里面也没识别出来~
davidcoffee 2013-07-16
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
思路上,就是采用排除法,先排除是全是英文的,再排除全是数字的情况,最后再排除全是特殊字符的 剩下的肯定是你想要的 2楼的基本上已经可以了,不过最好加个排除特殊字符的:
string pattern = @"(?i)^(?![a-z]+$)(?!\d+$)(?![!@#$%^&*()]+$)[a-z\d!@#$%^&*()]+$";
恩~我懂了使用零宽断言一个个把可能的都排除吧你们这样写的话~
davidcoffee 2013-07-16
  • 打赏
  • 举报
回复
引用 2 楼 Return_false 的回复:
string pattern = @"(?i)^(?![a-z]+$)(?!\d+$)[a-z\d!@#$%^&*()]+$";
有用我试下
q107770540 2013-07-16
  • 打赏
  • 举报
回复
思路上,就是采用排除法,先排除是全是英文的,再排除全是数字的情况,最后再排除全是特殊字符的 剩下的肯定是你想要的 2楼的基本上已经可以了,不过最好加个排除特殊字符的:
string pattern = @"(?i)^(?![a-z]+$)(?!\d+$)(?![!@#$%^&*()]+$)[a-z\d!@#$%^&*()]+$";
  • 打赏
  • 举报
回复
string pattern = @"(?i)^(?![a-z]+$)(?!\d+$)[a-z\d!@#$%^&*()]+$";
davidcoffee 2013-07-15
  • 打赏
  • 举报
回复
......没人回答...

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧