正则表达式条件,仅当“[word]”在末尾没有跟踪时返回

时间:2013-09-08 09:39:01

标签: python regex

我是regex的新手,几分钟前有人帮我看了以下内容:

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

现在我只想在它所寻找的字符串没有立即被空格和“狗”这个词落后的情况下部署它的发现

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

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

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

因此它与2013-29883后跟Dog不匹配,请使用另一个否定前瞻:

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

答案 1 :(得分:1)

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

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

     if(Regex.IsMatch(input, pattern))
     {
        // Your code of a match
     }