这是我正在尝试的代码:
string MatchNumberPattern = "^[a-zA-Z0-9]*$";
if (!Regex.IsMatch(cueTextBox9.Text, MatchNumberPattern))
{
MessageBox.Show("Enter 8 Space Alphanumeric BT ID only");
cueTextBox9.Text = String.Empty;
}
else
{
do something();
}
它正在接受 aaaaaaaa,但我想要 alpha 和数字的组合,例如 aaaa1234。
请您参考如下方法:
要要求输入中同时出现字母和数字,您需要正向先行:
@"^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]*$"
^^^^^^^^^^^^^^^^^^^^^^^^
参见 regex demo
(?=.*[a-zA-Z]) 确保有一个字母并且 (?=.*[0-9]) 使确保输入字符串中有数字。
由于您是从单行文本框中获取输入,因此在前瞻中使用 . 是安全的。作为替代方案,您可以使用 @"^(?=[^a-zA-Z]*[a-zA-Z])(?=[^0-9]*[0-9])[ a-zA-Z0-9]*$"(根据对比原则)。
