以重音开头的正则表达式测试

Regex test starting by an accent

本文关键字:正则表达式 测试 开头      更新时间:2023-09-26

我有一个regex模式来查找文本中给定单词(由数据库提供)的多次出现。如果单词在链接中,模式也会忽略该单词。

模式一直工作到现在,但我遇到了一个问题。如果单词以重音开头(我指定开头是因为如果单词中有重音,那么只有当单词以重音开头时才没有问题),那么单词将不匹配。

要查看问题,请转到RegexPal并将此粘贴到第一个框中:

'bétest(?![^<]*</a>)'b

这个在第二个方框

herp derp derp test herp derp derp derp étest herp derp derp derp <a>test</a>

你可以去掉" "看看它应该返回什么

'b表示单词和非单词字符之间的边界。换句话说,它断言了类似于(?<='w)(?='W)|(?<='W)(?='w)的东西(当然,JavaScript中没有向后看,但这只是一个演示)。

é不是一个单词字符。因此,它与空格之间没有词界。

然而,t之间存在一个字边界:

"étest".match(/é'btest/)
> ["étest"]