我从控制台上读到一个字符串。如何确保它只包含英文字符和数字?


最佳答案:

^[a-zA-Z0-9 ]*$
if( Regex.IsMatch(Console.ReadLine(), "^[a-zA-Z0-9]*$") )
{ /* your code */ }

在这种情况下,正则表达式的好处是,您真正关心的是字符串是否与模式匹配——这是正则表达式工作出色的地方。它清楚地捕捉到了你的意图,如果你对“英文字符”的定义超出了26个字母的定义,它很容易扩展。
有一个体面的series of articles here教更多关于正则表达式的知识。
J_rn Schou Rode的答案提供了一个很好的解释,说明了这里的正则表达式如何工作以匹配您的输入。