首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证我的文本是否包含使用regex和C#的单词

如何验证我的文本是否包含使用regex和C#的单词
EN

Stack Overflow用户
提问于 2015-03-11 14:46:49
回答 5查看 109关注 0票数 0

我想验证我的文本是否包含以3 char [a-zA-Z] (CRM)开头的字符串,并且在这个3 char之后包含9个数字( [0-9] ),类似于"CRM123456789“。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-03-11 14:49:36

简单:

代码语言:javascript
复制
bool valid = Regex.IsMatch(input,@"^[a-zA-Z]{3}[0-9]{9}$");
票数 1
EN

Stack Overflow用户

发布于 2015-03-11 14:50:25

您不需要正则表达式来执行该任务:

代码语言:javascript
复制
bool valid = input.Length == 12 
          && input.StartsWith("CRM") 
          && input.Substring(3).All(Char.IsDigit);

如果CRM只是一个示例,并且允许所有字母作为前三个字符:

代码语言:javascript
复制
bool valid = input.Length == 12 
          && input.Remove(3).All(Char.IsLetter) 
          && input.Substring(3).All(Char.IsDigit);
票数 2
EN

Stack Overflow用户

发布于 2015-03-11 14:54:17

如果您的"CRM123456789“出现在一些较长的文本中,您将需要检查为您工作的边界。在我的例子中,通常在标点符号或空格旁边有单词。我会用:

(?<=^|\p{P}|\p{Zs}|\b)[a-zA-Z]{3}[0-9]{9}(?=$|\p{P}|\p{Zs}|\b)

这里的演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28989735

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档