正则表达式的否定

Negation of regex expression

本文关键字:正则表达式      更新时间:2023-09-26

我想找到所有不是给定格式的值

123-45-6789

123 45 6789

123 - 456789

12345 - 6789

6789年

12345

456789年

123

所以我写了一个匹配上述格式的正则表达式,所以我需要表达式的否定来解决我的问题

('b'd{3}('s?)'d{2}('s?)'d{4}'b)|('b'd{3}(|-)'d{2}(|-)'d{4}'b)

周围都是消极的目光:(?!your_pattern)

在你的例子中是:

(?!('b'd{3}('s?)'d{2}('s?)'d{4}'b)|('b'd{3}(|-)'d{2}(|-)'d{4}'b))

UPDATE:它在JS中不起作用,因为它减少了Regex语法支持。所以你不能使用某些类型的查找。那么你唯一的机会就是执行

if (! your_regex.test(your_str) ) { /* work with unmatched strings */ }