我想验证我的文本是否包含以3 char [a-zA-Z] (CRM)开头的字符串,并且在这个3 char之后包含9个数字( [0-9] ),类似于"CRM123456789“。
发布于 2015-03-11 14:49:36
简单:
bool valid = Regex.IsMatch(input,@"^[a-zA-Z]{3}[0-9]{9}$");发布于 2015-03-11 14:50:25
您不需要正则表达式来执行该任务:
bool valid = input.Length == 12
&& input.StartsWith("CRM")
&& input.Substring(3).All(Char.IsDigit);如果CRM只是一个示例,并且允许所有字母作为前三个字符:
bool valid = input.Length == 12
&& input.Remove(3).All(Char.IsLetter)
&& input.Substring(3).All(Char.IsDigit);发布于 2015-03-11 14:54:17
如果您的"CRM123456789“出现在一些较长的文本中,您将需要检查为您工作的边界。在我的例子中,通常在标点符号或空格旁边有单词。我会用:
(?<=^|\p{P}|\p{Zs}|\b)[a-zA-Z]{3}[0-9]{9}(?=$|\p{P}|\p{Zs}|\b)
见这里的演示。
https://stackoverflow.com/questions/28989735
复制相似问题