Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于1或2位数字的正则表达式,可选非字母数字,2个已知字母_C#_Regex_Grep - Fatal编程技术网

C# 用于1或2位数字的正则表达式,可选非字母数字,2个已知字母

C# 用于1或2位数字的正则表达式,可选非字母数字,2个已知字母,c#,regex,grep,C#,Regex,Grep,我一直把头撞在墙上试图做一个简单的正则表达式-我需要匹配,例如12po,其中12部分可以是一个或两个数字,然后是一个可选的非字母数字,比如:.-,等,然后是字符串po 最终将在C#中使用,但我希望它也能在命令行上的常规grep中使用。我没有访问C#,这没有帮助 ^[0-9][0-9]?[^A-Za-z0-9]?po$ 您可以在此处进行测试: 要在C#中使用此选项 请记住,@是一个有用的符号,它意味着解析器按字面意思获取字符串(例如,您不需要为一个反斜杠写\\) 将任何其他允许的非字母数字字符添

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

最终将在
C#
中使用,但我希望它也能在命令行上的常规
grep
中使用。我没有访问
C#
,这没有帮助

^[0-9][0-9]?[^A-Za-z0-9]?po$
您可以在此处进行测试:

要在C#中使用此选项

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

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

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

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

…但是将它们添加到
-
之前,否则你会得到令人惊讶的结果。\W不包括u,这是他非常想要的-非常感谢。在代码中工作,但grep仍然给我“unmatched^或]”,但我可以接受。顺便说一句,我去掉了开头和结尾的“^”和“$”,忘了说字符串可以出现在任何地方,而不仅仅是一行。在这种情况下,请在正则表达式周围使用
\b
锚。在过去九年中,这个问题积累了比我预期的多得多的观点和投票。这种模式在哪里使用,以至于很多人觉得它很有用?
^[0-9]{1,2}[:.,-]?po$
^\d{1,2}[\W_]?po$