正则表达式为1或2位数,可选的非字母数字,2个已知的alphas

时间:2011-03-01 13:53:58

标签: c# regex grep

我一直在靠墙试图做一个简单的正则表达式 - 我需要匹配,例如12po其中12部分可能是一位或两位数,然后一个可选的非字母数字,如:.-,_等,然后是字符串po

最终的使用将在C#,但我希望它也能在命令行中以常规grep工作。我无法访问C#,但这无济于事。

3 个答案:

答案 0 :(得分:52)

^[0-9]{1,2}[:.,-]?po$

将任何其他允许的非字母数字字符添加到中间括号以允许对它们进行解析。

答案 1 :(得分:21)

^\d{1,2}[\W_]?po$

\d定义了一个数字,而{1,2}表示之前的表达式中的一个或两个,\W定义了一个非单词字符。

答案 2 :(得分:4)

^[0-9][0-9]?[^A-Za-z0-9]?po$

您可以在此处进行测试:http://www.regextester.com/

要在C#中使用它,

Regex r = new Regex(@"^[0-9][0-9]?[^A-Za-z0-9]?po$");
if (r.Match(someText).Success) {
   //Do Something
}

请记住,@是一个有用的符号,表示解析器从字面上理解字符串(例如,您不需要为一个反斜杠写\\)