Php preg_可替换字母数字和重音以外的所有内容

Php preg_可替换字母数字和重音以外的所有内容,php,preg-replace,diacritics,Php,Preg Replace,Diacritics,搜索了一段时间,但由于我不了解可以输入的preg replace参数,我无法通过查看类似问题来解决我的问题。(因此,我想请您解释一下答案中的每个符号?) 我想过滤一个字符串,并用空格替换所有不是字母数字或重音的内容。(在此之后,我使用preg_split来列出它们) 在这里,我称之为重音符号的符号只显示小写,但也要保留大写的变体(可能忘记了一些)。我真的需要左边的标志。这项权利不是强制性的: é è ë ï ê ç ü ö ä ú ó á ã õ ñ å û â ô

搜索了一段时间,但由于我不了解可以输入的preg replace参数,我无法通过查看类似问题来解决我的问题。(因此,我想请您解释一下答案中的每个符号?)

我想过滤一个字符串,并用空格替换所有不是字母数字或重音的内容。(在此之后,我使用preg_split来列出它们)

在这里,我称之为重音符号的符号只显示小写,但也要保留大写的变体(可能忘记了一些)。我真的需要左边的标志。这项权利不是强制性的:

é è ë ï ê                ç ü ö ä ú ó á ã õ ñ å û â ô
我需要这个,因为我必须搜索我的数据库(准备好的语句)

目前我使用:

 $terms=preg_split('/\s+/', preg_replace('/[^a-zA-Z0-9À-ÿ]+/', ' ', $_GET['ter']));
但下面的示例表明,它不会保留标志的原样:

url example: mydomain.com/index.php?ter=léopold

$terms=preg_split('/\s+/', preg_replace('/[^a-zA-Z0-9À-ÿ]+/', ' ', $_GET['ter']));
foreach ($erms as $term){echo " term: ".$term;}


Outputs:
term: l� term: opold

What i want it to be:
term: léopold

因此,我需要创建一个preg_replace,它不会损害重音,特别是在第一个代码块的左边写的那些,因为重音,使用mb_ereg_replace,preg_replace with multi byte support