我想检查我的字符串是否包含以下值:
样品:
我的条件是
48-57(1 or more time)32(or)10(or)13(then)48(then)32(or)10(or)13(then)111981066060
问题:如何为上述条件编写正则表达式。括号表示出现。
答案 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
最好分成字段并根据业务逻辑检查这些字段,而不是像上面那样依赖静态正则表达式。