Regex.IsMatch

吴仙森 2013-06-19 09:00:03
Regex.IsMatch(input, "{[0-9]|[a-z]|[A-Z]}*)
当我使用上面语句来校验字符串需要是数字或字母的组合,当我输入纯数字,不满足条件。
哪位大侠能帮分析下。
...全文
331 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
dalmeeme 2013-06-23
  • 打赏
  • 举报
回复
这类问题最好给出些样例:比如哪些是合法的,哪些有是不合法的,这样比较清晰。
dalmeeme 2013-06-23
  • 打赏
  • 举报
回复
1楼给你的即使我前面说的第二种情况,也不是你要的了。 你要的可能是这样:Regex.IsMatch(input, @"^[0-9a-zA-Z]+$")
吴仙森 2013-06-23
  • 打赏
  • 举报
回复
引用 6 楼 dalmeeme 的回复:
[quote=引用 3 楼 jborcl 的回复:] [quote=引用 1 楼 Return_false 的回复:] (?i)^(?![a-z]+$)(?!\d+$)[\da-z]+$ 必须为数字和字母组合
谢谢。但是我想知道我的错在哪里了?[/quote] 你写的正则相当于一个组合条件: 数字或小写字母或大写字母 那么字符串全由数字组成也可以了,所以不对。 Return_false写给你的也相当于一个组合条件: 不全部由字母组成 且 不全由数字组成 且 全由数字或字母组成 等价于“由字母和数字组成且2类字符都要存在。 [/quote] 我想你搞错了,我是要实现数字或字母或他们的组合,而非数字字母的组合
dalmeeme 2013-06-23
  • 打赏
  • 举报
回复
另外你写的外面加上一对花括号,这也明显不对。
dalmeeme 2013-06-23
  • 打赏
  • 举报
回复
引用 3 楼 jborcl 的回复:
[quote=引用 1 楼 Return_false 的回复:] (?i)^(?![a-z]+$)(?!\d+$)[\da-z]+$ 必须为数字和字母组合
谢谢。但是我想知道我的错在哪里了?[/quote] 你写的正则相当于一个组合条件: 数字或小写字母或大写字母 那么字符串全由数字组成也可以了,所以不对。 Return_false写给你的也相当于一个组合条件: 不全部由字母组成 且 不全由数字组成 且 全由数字或字母组成 等价于“由字母和数字组成且2类字符都要存在。
吴仙森 2013-06-23
  • 打赏
  • 举报
回复
引用 4 楼 mmm306306 的回复:
[quote=引用 3 楼 jborcl 的回复:] [quote=引用 1 楼 Return_false 的回复:] (?i)^(?![a-z]+$)(?!\d+$)[\da-z]+$ 必须为数字和字母组合
谢谢。但是我想知道我的错在哪里了?[/quote] { 是一个普通字符,其实你应该想用的是 吧[/quote] 不是的{a}*指的是含一个或多个a组成的字符串
马老虎 2013-06-19
  • 打赏
  • 举报
回复
引用 3 楼 jborcl 的回复:
[quote=引用 1 楼 Return_false 的回复:] (?i)^(?![a-z]+$)(?!\d+$)[\da-z]+$ 必须为数字和字母组合
谢谢。但是我想知道我的错在哪里了?[/quote] { 是一个普通字符,其实你应该想用的是
吴仙森 2013-06-19
  • 打赏
  • 举报
回复
引用 1 楼 Return_false 的回复:
(?i)^(?![a-z]+$)(?!\d+$)[\da-z]+$ 必须为数字和字母组合
谢谢。但是我想知道我的错在哪里了?
shawn_yang 2013-06-19
  • 打赏
  • 举报
回复
应该这么写 [0-9a-zA-Z]*
  • 打赏
  • 举报
回复
(?i)^(?![a-z]+$)(?!\d+$)[\da-z]+$ 必须为数字和字母组合

110,566

社区成员

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

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

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