【问题标题】:C# regular Expression that allows only alphabets and numbers but not any special characters or spacesC# 正则表达式,仅允许字母和数字,但不允许任何特殊字符或空格
【发布时间】:2017-03-22 05:42:51
【问题描述】:

我需要验证一个应该接受诸如“ab123cd”、“xy12345”、“a567891”之类的字符串的文本框。如何编写正则表达式来满足此要求?接受字符串的长度不应超过 7 个字符。字符串中不应有任何特殊字符或空格。

while(textbox.text does not match the requirement)
{
MessageBox.Show("Please enter Valid string");
prompt.ShowDialog();  //displaying a Dialog box that shows a textbox  
}

还帮我编写如上所示的代码。 谢谢!!

【问题讨论】:

标签: c# .net regex


【解决方案1】:

编辑: 更新 你可以试试这个

^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]{1,7}$

解释:

  1. ^ 标记开始位置
  2. (?=.*[a-zA-Z]) 往前看,看看有没有字母
  3. (?=.*[0-9]) 往前看,看看有没有数字
  4. [a-zA-Z0-9] 表示 a-z 、 A-Z 或 0-9 之间的任何字符
  5. {1,7} 表示只能出现 1-7 次
  6. $ 标记字符串的结尾

Demo

【讨论】:

  • 嗨里兹万!我试过了,但它也接受 '1234567' , 'abcdefg' 但我需要限制它只接受字母数字字符串,如 'a123456' 或 'abc1234' 或者它可以是 'abc123d'
  • @SuryaPrakashKamarthi 我已经更新了答案,请看一下
  • @谢谢Rizwan!!
【解决方案2】:

你可以使用 ^\w{1,7}$

表示 1 到 7 个字母数字字符。您可以轻松调整长度限制。

如果您希望更好地控制其他允许的字符,请使用: ^[a-zA-Z0-9]{1,7}$,因为 \w 比较宽松所以要小心

对于 C#,您可以使用 Regex.IsMatch 方法:Regex.IsMatch 方法(System.Text.RegularExpressions):https://msdn.microsoft.com/fr-fr/library/system.text.regularexpressions.regex.ismatch(v=vs.110).aspx

使用非常简单。

【讨论】:

  • \w 也包括 _ 并且可能因正则表达式编译器而异。
  • 下次请阅读答案直到结束,然后再跳上 -1 红色按钮。或者,也许您可​​以发布自己有用的答案。
猜你喜欢
  • 2019-06-30
  • 1970-01-01
  • 1970-01-01
  • 2018-07-24
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多