这里我输入带空格的字母数字字符。但这个表达式失败
// Function to Check for AlphaNumeric.
public bool IsAlphaNumeric(String strToCheck)
{
Regex objAlphaNumericPattern = new Regex(@"[a-zA-Z0-9\s]*");
return objAlphaNumericPattern.IsMatch(strToCheck);
}
protected void Button1_Click(object sender, EventArgs e)
{
string straddres = "2";
straddres = TextBox1.Text;
if (!IsAlphaNumeric(straddres.Trim()))
{
Label1.Text = "Error";
}
else
{
Label1.Text = "Success";
}
}
例如:
123 abc, 23 2322 erwer
这些话应该得到统计,请告诉我表达错误的地方
例如:
@#23,#$ 34,@&* 34s
应该让机器人满意
答案 0 :(得分:3)
表达式解决了我的问题
@"^[A-Za-z0-9 ]+$"
答案 1 :(得分:0)
将*
替换为表达式中的+
。 *
将匹配零个字符,因此您将使用该字符匹配所有内容,甚至是空字符串。 +
表示您必须至少有一个字符匹配。
您可以考虑在字符串的开头添加^
,在表达式的末尾添加$
以使其与整个字符串匹配,如果这是您想要的。
答案 2 :(得分:0)
\s
是预定义的字符类。所有预定义的字符类在用户定义的字符类中都会失去其特殊含义。您的正则表达式将匹配字母数字或斜杠(额外的s
是多余的,因为a-z
将与之匹配)。
将\s
更改为空格([a-zA-Z 0-9]
),或者如果您需要捕获任何类型的空格(不仅仅是ASCII 32),请尝试使用([a-zA-Z0-9]|\s)*
。
警告:\s
的替代匹配也会捕获整个空白块。
答案 3 :(得分:0)
您需要将匹配值与输入字符串进行比较。
string pattern = @"[a-zA-Z0-9\s]*";
Match match = Regex.Match(str, pattern);
if (match.Value == str)
Console.WriteLine("Valid");
else
Console.WriteLine("Invalid");