找到匹配包含重音字母的单词边界的正则表达式

find a regexpression that matches word boundaries that include accented letters

我需要一个在 preg_match 中使用的正则表达式,它可以捕捉像 cialis 这样的单词,当它作为一个带有空格的单词时,也可以作为一个带有标签的单词,即 <b>cialis</b>,所以我使用了这个

$word = "cialis";
if (preg_match_all("/\b$word\b/i", $content, $matches)) {
        $caught[] = $matches[0];
    }

效果很好,并且没有像 specialist 这样含有 cialis 的字眼。一切都很好,直到我遇到一些法语单词,比如 spécialisé é 被视为单词边界,因此 spécialisé 被捕获。什么正则表达式会阻止将 spécialisé 添加到 $caught?

提前致谢。

您可以对 unicode 字符串使用修饰符 u :

/\b$word\b/iu