我已经搜索了一段时间,所以希望这不是一个已经多次问过的问题。
我正在尝试在php上编写一个脚本,该脚本将从字符串中删除停用词,然后在一个单词数组中将其爆炸。停用词可以是英语或法语。
目前以下内容对我不起作用,因为它不会删除法语字符:
$needles=array(
'/\bil\b/i',
'/\bla\b/i',
'/\ble\b/i',
'/\b'. htmlentities('à') .'\b/i'
);
print_r($needles);
$result=preg_replace($needles, "", htmlentities("il y à trois personne dans la salle à manger"));
print_r($result);
输出会删除所有内容,但不会删除法语字符:à
答案 0 :(得分:0)
正如评论中所述,htmlentities('à')
会给您[3] => /\bà\b/i
。 It won't match your letter
相反,使用à
和u
标志在模式中启用Unicode:
'/\bà\b/iu'
请参阅demo
<?php
$needles=array(
'/\bil\b/i',
'/\bla\b/i',
'/\ble\b/i',
'/\bà\b/iu'
);
print_r($needles);
$result=preg_replace($needles, "", "il y à trois personne dans la salle à manger");
print_r($result);
输出:
y trois personne dans salle manger