繁体   English   中英

如何编写正则表达式以匹配一组值?

[英]How to write a regular expression to match a set of values?

我想检查我的字符串是否具有以下值:

对于样品:

  • 4850324810111981066060
  • 50104810111981066060

我的条件是

48-57(1 or more time)32(or)10(or)13(then)48(then)32(or)10(or)13(then)111981066060  

问题:如何为上述条件编写正则表达式。 括号表示发生。

(4[8-9]|5[0-7])+(32|10|13)48(32|10|13)111981066060

签出Expresso-它使您可以构建和测试正则表达式,并立即为您创建C#代码段或.NET程序集。 强烈推荐!

Regex regex = new Regex(@"(?:4[89]|5[0-7])+(?:32|10|13)48(?:32|10|13)111981066060");
regex.Match(string);

虽然没有测试!

您可以使用Nregex在线测试.NET中的正则表达式

这个:

(48|49|50|51|52|53|54|55|56|57)+(32|10|13)48(32|10|13)111981066060

编辑:刚看到保罗回答 ,这确实可以缩短为

(4[89]|5[0-7])+(32|10|13)48(32|10|13)111981066060

住所和矿场方法之间的唯一区别是:他不会一直对信息进行分组(这不是必需的),而我也不希望忽略它们。

您可以从以下内容开始,看看是否需要进行改进

(4[89]|5[0-7])+(32|10|13)48(32|10|13)111981066060

最好拆分成多个字段并对照您的业务逻辑检查这些字段,而不是像上面那样依赖静态正则表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM