可选的正则表达式匹配

时间:2014-04-09 21:42:39

标签: regex

我有一个像1566-02这样的字符串,其中-02是可选的。如果我使用像这样的正则表达式

1566\s*-\s*\d{2} 

1566之后,它始终需要带有连字符的2个数字。

如何将-02部分设为可选,以便{15}的IsMatch也适用?

例如 - 如果我们将字符串传递为1566或1566-02或1566-45,则IsMatch的值应为true 对于1566-AC或1566-

,IsMatch值应为false

1 个答案:

答案 0 :(得分:3)

只需将其打包在group中,然后使用零或一quantifier?)将其设为可选项:

1566(\s*-\s*\d{2})?

要禁止匹配字符串之前或之后的任何其他字符,请使用开始(^)和结束($anchors

^1566(\s*-\s*\d{2})?$