Eric's Studio

ARTS090

Word count: 352Reading time: 1 min
2023/03/27

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], [email protected], [email protected], [email protected]

通过使用上述正则表达式进行匹配,能够匹配到的邮箱地址有:

1
2
[email protected]  # 不以"spam"或者"invalid"结尾
[email protected] # 不以"spam"或者"invalid"结尾

而不能匹配的邮箱地址则有:

1
2
[email protected]     # 以"spam"结尾
[email protected] # 以"invalid"结尾

因此,通过使用负向零宽断言,我们能够更加灵活地匹配字符串,避免过度依赖复杂的正则表达式。

Share

none

CATALOG
  1. 1. Algorithm
  2. 2. Review
  3. 3. Tips
  4. 4. Share