密码包含大小写字母、数字以及非字母字符的正则表达式

IBRW 2009-09-19 10:44:35
密码必须包含以下四类字符中的三类字符:

◎英文大写字母(A 到 Z)

◎英文小写字母(a 到 z)

◎10 个基本数字(0 到 9)

◎非字母字符(例如 !、$、#、%)


有没有高手能写出来正则表达式啊
...全文
1301 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
CsToD 2009-09-19
  • 打赏
  • 举报
回复
麻烦是麻烦,能实现哈
IBRW 2009-09-19
  • 打赏
  • 举报
回复
CsToD 我也汗 哥 不会用你得
CsToD 2009-09-19
  • 打赏
  • 举报
回复
我的呢?
IBRW 2009-09-19
  • 打赏
  • 举报
回复
TO:LCL_data
您得正则表达式验证得只是判断字符串里包含找4个种类得一个就可以 我得是要求必须至少包含3个种类
CsToD 2009-09-19
  • 打赏
  • 举报
回复
你错得很掺,别人要求4含3
比如8ji就不行,因为只含2种
十八道胡同 2009-09-19
  • 打赏
  • 举报
回复
 Regex re=new Regex(@"^[A-Za-z0-9!$#%]+$");
string[] str = new string[] { "Asa8*", "!$#%", "8jh" };
foreach (string s in str)
{
if(re.Match(s).Success)
Console.WriteLine(re.Match(s).Value);
}

!$#%
8jh
请按任意键继续. . .
十八道胡同 2009-09-19
  • 打赏
  • 举报
回复
[Quote=引用楼主 bin_blue_sky 的回复:]
密码必须包含以下四类字符中的三类字符:

◎英文大写字母(A 到 Z)

◎英文小写字母(a 到 z)

◎10 个基本数字(0 到 9)

◎非字母字符(例如 !、$、#、%)


有没有高手能写出来正则表达式啊
[/Quote]
群补罗列出来
@"[A-Za-z0-9!$#%]"
CsToD 2009-09-19
  • 打赏
  • 举报
回复
(?<=[a-z])(?<=[A-Z])(?<=[0-9])|
(?<=[a-z])(?<=[A-Z])(?<=[^A-Za-z0-9])|
(?<=[a-z])(?<=[0-9])(?<=[^A-Za-z0-9])|
(?<=[A-Z])(?<=[0-9])(?<=[^A-Za-z0-9])

这样?

汗.....
随风 2009-09-19
  • 打赏
  • 举报
回复
我也看看高手长什么样
ruanwei1987 2009-09-19
  • 打赏
  • 举报
回复
高手还没起床呢 ,我帮你顶吧 !!今天周末
IBRW 2009-09-19
  • 打赏
  • 举报
回复
wuyi8808 太感谢你啦 搞定
CsToD 也谢谢你啦
wuyi8808 2009-09-19
  • 打赏
  • 举报
回复
// 必须为 6-12 位的版本

using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string[] array = { "A2wee678", "###12345", "!!isok!!234", "ijk#A", "QWERtyuiop", "123456ABCD#!", "123456ABCD#!@", };
Regex r = new Regex("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).{6,12}$");
foreach (string s in array)
{
Console.WriteLine("{0}: {1}", r.IsMatch(s) ? "Yes" : " No", s);
}
}
}

/*
程序输出:
Yes: A2wee678
No: ###12345
Yes: !!isok!!234
No: ijk#A
No: QWERtyuiop
Yes: 123456ABCD#!
No: 123456ABCD#!@
*/
wuyi8808 2009-09-19
  • 打赏
  • 举报
回复
/* 至少六位版本的输出:
No: A2wee
No: ###123
Yes: !!isok!!234
No: ijk#A
No: QWERtyuiop
*/
wuyi8808 2009-09-19
  • 打赏
  • 举报
回复
// 至少六位的版本
using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string[] array = { "A2wee", "###123", "!!isok!!234", "ijk#A", "QWERtyuiop" };
Regex r = new Regex("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).{6,}");
foreach (string s in array)
{
Console.WriteLine("{0}: {1}", r.IsMatch(s) ? "Yes" : " No", s);
}
}
}

/*
程序输出:
Yes: A2wee
No: ###123
Yes: !!isok!!234
Yes: ijk#A
No: QWERtyuiop
*/
IBRW 2009-09-19
  • 打赏
  • 举报
回复
wuyi8808 您好 我再奢侈一下 如果再加上验证这个字符串至少6位 怎么写啊
wuyi8808 2009-09-19
  • 打赏
  • 举报
回复
using System;
using System.Text.RegularExpressions;

class Program
{
static void Main()
{
string[] array = { "A2wee", "###123", "!!isok!!234", "ijk#A", "QWERtyuiop" };
Regex r = new Regex("^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9])|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9])|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9])).+");
foreach (string s in array)
{
Console.WriteLine("{0}: {1}", r.IsMatch(s) ? "Yes" : " No", s);
}
}
}

/*
程序输出:
Yes: A2wee
No: ###123
Yes: !!isok!!234
Yes: ijk#A
No: QWERtyuiop
*/
CsToD 2009-09-19
  • 打赏
  • 举报
回复
没个分组前后貌似要加*
wuyi8808 2009-09-19
  • 打赏
  • 举报
回复
"^(?:(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).+|(?=.*[A-Z])(?=.*[a-z])(?=.*[^A-Za-z0-9]).+|(?=.*[A-Z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).+|(?=.*[a-z])(?=.*[0-9])(?=.*[^A-Za-z0-9]).+)$";
CsToD 2009-09-19
  • 打赏
  • 举报
回复
把你的代码贴出来
IBRW 2009-09-19
  • 打赏
  • 举报
回复

CsToD 这个表达式我找不到正确得字符串来匹配
加载更多回复(4)

110,534

社区成员

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

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

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