正则表达式前瞻

使用 (?=...) 和 (?!...) 根据后续模式进行匹配的正则表达式语法,不消耗字符。

正则表达式前瞻 (lookahead) 是一种在不消耗字符的情况下检查后续是否匹配特定模式的语法。肯定前瞻 (?=...) 在模式匹配时成立,否定前瞻 (?!...) 在模式不匹配时成立。

前瞻是零宽断言,只检查条件而不推进匹配位置。例如 d+(?=元) 匹配"100元"中的"100",但不包含"元"。正则表达式入门书籍介绍了前瞻的基础知识。

在密码验证中,可以组合多个前瞻同时检查"包含字母""包含数字""至少 8 个字符"等条件。

JavaScript 从 ES2018 开始也支持后顾断言 (?<=...)(?<!...)正则表达式实战书籍教授高级模式技巧。