找到匹配包含重音字母的单词边界的正则表达式
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
我需要一个在 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