匹配":)"笑脸,然后是单词边界

htt*_*ete 6 javascript regex

我试图匹配笑脸,然后是一个单词边界\b.

让我们说我想匹配:p,:)然后跟着\b.

/(:p)\b/工作正常,但为什么/(:\))\b/表现相反?

Wik*_*żew 7

您不能在此处使用单词边界,因为)它是非单词字符.

简单地说:\b允许你使用正则表达式执行整个单词搜索\bword\b.甲字字符是可用于形成字的字符.所有 非单词字符的字符都是非单词字符.

用于在第一个捕获组中(:\))匹配:)和捕获它.

使用/(:\))(?![a-z0-9_])/i是为了避免:)在笑脸后将任何s与字母匹配.它相当于(:\))\B.

\B是否定版本\b.\B在没有的每个位置匹配\b .实际上,\B匹配两个单词字符之间的任何位置以及两个非单词字符之间的任何位置.

请参阅演示1演示2.