1

我是正则表达式的新手,几分钟前有人帮助我展示了以下内容:

(?:^|(?<=\D))\d{4}-\d{1,5}(?=\D|$)

现在我想部署它的发现只有当它正在寻找的字符串没有立即被空格和单词“Dog”尾随时

例如,如果遇到“2013-29883”,它将返回一个值,但如果遇到“2013-29883 Dog”则不会。

感谢您的任何帮助。

4

2 回答 2

3

正则表达式可以缩短很多字符:

(?<!\d)\d{4}-\d{1,5}(?!\d)

为了不匹配2013-29883后面的Dog,请使用另一个否定的前瞻:

(?<!\d)\d{4}-\d{1,5}(?!\d)(?! Dog)
于 2013-09-08T09:45:01.450 回答
1

如果它在 c# 中,那么您可以使用Regex类:

     string pattern = "(?:^|(?<=\D))\d{4}-\d{1,5}(?=\D|$)";

     if(Regex.IsMatch(input, pattern))
     {
        // Your code of a match
     }
于 2013-09-08T09:44:31.377 回答