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

时间:2009-12-05 11:23:50

标签: c# regex

我想检查我的字符串是否包含以下值:

样品:

  • 4850324810111981066060
  • 50104810111981066060

我的条件是

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

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

6 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

没试过!

答案 3 :(得分:0)

您可以使用 Nregex

在线测试.NET中的正则表达式

答案 4 :(得分:0)

这个:

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

编辑:刚看到Paul answer,这真的可以缩短为

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

唯一和我的方法之间的区别是:他没有保持分组信息(因为这不是必需的),我不在乎忽略它们。

答案 5 :(得分:0)

您可以从以下内容开始,看看是否需要提出建议

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

最好分成字段并根据业务逻辑检查这些字段,而不是像上面那样依赖静态正则表达式。