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

Ben*_*Ben 37 c# regex grep

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

最终的使用将会在,C#但我希望它也可以在grep命令行上定期工作.我无法访问C#,这没有帮助.

eyk*_*nal 58

^[0-9]{1,2}[:.,-]?po$
Run Code Online (Sandbox Code Playgroud)

将任何其他允许的非字母数字字符添加到中间括号以允许它们也被解析.

  • ...但是在`-`之前添加它们,否则你会得到令人惊讶的结果。 (2认同)

ste*_*ema 25

^\d{1,2}[\W_]?po$
Run Code Online (Sandbox Code Playgroud)

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


Tim*_*NET 8

^[0-9][0-9]?[^A-Za-z0-9]?po$
Run Code Online (Sandbox Code Playgroud)

你可以在这里测试: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
}
Run Code Online (Sandbox Code Playgroud)

请记住,@ 是一个有用的符号,这意味着解析器按字面意思处理字符串(例如,您不需要为一个反斜杠写 \\)