我有以下方法:
public static bool isUeiFormatOK(string test)
{
string pattern = "[A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9][A-Za-z0-9]";
MatchCollection matches;
Regex regex = new Regex(pattern);
matches = regex.Matches(test);
if (matches.Count == 0)
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
这将验证字符串是否为 12 个字符并且包含数字或字母。
我怎么说呢,其中一个字符必须是数字?
您可以使用量词{12}来缩短模式,并使用正向前瞻来断言数字,首先可以选择匹配字符类中不带数字的相同允许字符。
^(?=[A-Za-z]*[0-9])[A-Za-z0-9]{12}$
Run Code Online (Sandbox Code Playgroud)
^字符串的开头(?=[A-Za-z]*[0-9])正向前瞻,断言右侧可选字符 A-Za-z 后跟一个数字[A-Za-z0-9]{12}匹配 12 次出现的字符 A-Za-z 或数字 0-9$字符串结尾(或使用\z)您不必计算匹配的数量,您可以返回 的值IsMatch。
public static bool isUeiFormatOK(string test)
{
return new Regex("^(?=[A-Za-z]*[0-9])[A-Za-z0-9]{12}$").IsMatch(test);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
327 次 |
| 最近记录: |