我正在使用这个功能:http://www.seoreviewtools.com/multi-keyword-density-checker-php-script/但我遇到了一些问题,使它与奇怪的法语单词一起使用。 (请参阅我在此修改后的版本:http://pastebin.com/m6PjsizX)
如您所知TextBlock
不适用于UTF-8字符,可以使用第三个arg来“忽略”那些字符。但是,我没有找到一种方法使其与引号一起使用(在法语中很常见)。
法语单词中有三种简单的引号:
我想删除一些引号,以便在没有错误的情况下处理System.Windows.Controls.TextBlock
(可能使用正则表达式和str_word_count()
)以获得此结果:
str_word_count()
aime la plage aujourd'hui,quelqu'un aimerait-il aller chez Super'pour voir avion bleu
此外还有很多引号(',`,','等),我希望这可以用于所有类型的引号。
你有解决方案让它以这种方式工作吗?
谢谢!
答案 0 :(得分:2)
你似乎想要
j'aime
,l'huile
)与代表缩短词的第一个字母分开时删除撇号aujourd'hui
,quelqu'un
,Super'
)。我建议采用删除单词开头的每个单个字母的方法,后面跟一个撇号。所有其他情况都是'
应该在里面这个词,因此必须保持原样。
'~\b\p{L}[\'`‘’]\b~u'
请参阅regex demo
$re = '~\b\p{L}[\'`‘’]\b~u';
$str = "J'aime la plage d'aujourd'hui, quelqu‘un aimerait-il aller chez Super’ pour voir l`avion bleue ? l'école L'";
$result = preg_replace($re, "", $str);
echo $result;
// => aime la plage aujourd'hui, quelqu‘un aimerait-il aller chez Super’ pour voir avion bleue ? école L'
注意在使用Unicode字符串时,每次调用 preg_replace 时都必须使用/u
修饰符。