C#regular表达式,只允许使用字母和数字,但不允许任何特殊字符或空格

时间:2017-03-22 05:42:51

标签: c# .net regex

我需要验证一个应该接受“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  
}

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

2 个答案:

答案 0 :(得分:2)

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

^(?=.*[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. 之间的任何字符
  6. {1,7}表示只能发生1-7次
  7. $标记字符串的结尾
  8. Demo

答案 1 :(得分:1)

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

指一至七个字母数字字符。您可以轻松调整长度限制。

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

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

使用起来非常简单。