正则表达式前瞻
使用 (?=...) 和 (?!...) 根据后续模式进行匹配的正则表达式语法,不消耗字符。
正则表达式前瞻 (lookahead) 是一种在不消耗字符的情况下检查后续是否匹配特定模式的语法。肯定前瞻 (?=...) 在模式匹配时成立,否定前瞻 (?!...) 在模式不匹配时成立。
前瞻是零宽断言,只检查条件而不推进匹配位置。例如 d+(?=元) 匹配"100元"中的"100",但不包含"元"。正则表达式入门书籍介绍了前瞻的基础知识。
在密码验证中,可以组合多个前瞻同时检查"包含字母""包含数字""至少 8 个字符"等条件。
JavaScript 从 ES2018 开始也支持后顾断言 (?<=...) 和 (?<!...)。正则表达式实战书籍教授高级模式技巧。