我必须使用正则表达式找到这些字符串: -
(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
}
任何帮助将不胜感激。
答案 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
的输出: