正则表达式不适用于特定字符串

时间:2015-04-24 09:54:26

标签: asp.net regex

我必须使用正则表达式找到这些字符串: -

(APP12345-85)
(APP12345XDP-85) 
(APP12345X-85) 
(APP12345-85)  - not working for this one
(APP12345) - not working for this one

原始文字是这样的 .......some text 123 (APP12345-85) some text...............

我的代码是: -

Regex rgx = new Regex(@"(APP|REG)[0-9]{5}[A-Z]{5}-[0-9]{2}", caseIgnore);

MatchCollection matches = rgx.Matches(@evalString);
if (matches.Count > 0)
{
//code
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您也可以将这些条目与

匹配
\b(APP|REG)[0-9]{5}[A-Z]{0,5}(?:-[0-9]{2})?\b

看起来大写字母是可选的,因此设置为{0,5}看起来很安全。 而这个正则表达式不会检查字符串/行的开头/结尾。

请参阅demo

<强>更新

以下是更新示例的示例代码:

Regex rgx = new Regex(@"\((APP|REG)[0-9]{5}[A-Z]{0,5}(?:-[0-9]{2})?\)", RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches("(APP12345-85)");
if (matches.Count > 0)
{
  //code
}

matches的输出:

enter image description here enter image description here