Notion 的 AI 也挺好用!
Algorithm
none
Review
none
Tips
AI 给我解释了负向零宽断言,还是挺容易理解的:
Q: 怎么理解正则表达式中的负向零宽断言?举例子说明。
A: 正则表达式中的负向零宽断言(Negative Lookahead Assertion)指的是,在匹配某个模式时,通过在该模式前添加(?!)
来指定一个负向断言,即匹配该模式的前提是其后面不跟着指定模式。
例如,假设我们想要匹配所有不以某个特定字符串结尾的邮箱地址,我们可以使用下面的正则表达式:
1 | w+@w+.(?!invalid|spam)[a-zA-Z]{2,3} |
在上面的表达式中,(?!invalid|spam)
表示不允许字符串以”invalid”或者”spam”结尾。
举个例子,如果有一个邮箱地址列表如下:
通过使用上述正则表达式进行匹配,能够匹配到的邮箱地址有:
1 | [email protected] # 不以"spam"或者"invalid"结尾 |
而不能匹配的邮箱地址则有:
1 | [email protected] # 以"spam"结尾 |
因此,通过使用负向零宽断言,我们能够更加灵活地匹配字符串,避免过度依赖复杂的正则表达式。
Share
none