Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何删除除“字符”以外的特殊字符ñ;/Ñ&引用;和破折号“-&引用;在拉威尔_Php_Laravel - Fatal编程技术网

Php 如何删除除“字符”以外的特殊字符ñ;/Ñ&引用;和破折号“-&引用;在拉威尔

Php 如何删除除“字符”以外的特殊字符ñ;/Ñ&引用;和破折号“-&引用;在拉威尔,php,laravel,Php,Laravel,我想删除字符串中的特殊字符,但保留“ñ/ñ”和“-” 因此,如果我有: ?安东尼奥·拉蒙·佩尼亚 结果将是: Antonio Ramon-Peña 您可以使用PCRE谓词来允许一组字符列表,如果它匹配,则忽略它。然后,对于所有其他字符(因为它不是您关心的字符),删除它们 preg_replace('/[\w\h-](*SKIP)(*FAIL)|./u', '', '»¿Antonio Ramon-Peñaą') 有关更长的正则表达式解释,请参见。基本上,[\w\h-]是任何水平空格、单词字符

我想删除字符串中的特殊字符,但保留“ñ/ñ”和“-”

因此,如果我有:

?安东尼奥·拉蒙·佩尼亚

结果将是:

Antonio Ramon-Peña

您可以使用PCRE谓词来允许一组字符列表,如果它匹配,则忽略它。然后,对于所有其他字符(因为它不是您关心的字符),删除它们

preg_replace('/[\w\h-](*SKIP)(*FAIL)|./u', '', '»¿Antonio Ramon-Peñaą')
有关更长的正则表达式解释,请参见。基本上,
[\w\h-]
是任何水平空格、单词字符或连字符。结束定界符后的
u
修饰符将
\w
展开,以包括ascii集合之外的单词字符。
是任何单个字符

或者,您可以匹配所有有效字符,然后重新加入它们

preg_match('/[\w\h-]+/u', '»¿Antonio Ramon-Peñaą', $match);
echo implode('', $match);

您可以使用PCRE谓词来允许一组字符列表,如果它匹配,则忽略它。然后,对于所有其他字符(因为它不是您关心的字符),删除它们

preg_replace('/[\w\h-](*SKIP)(*FAIL)|./u', '', '»¿Antonio Ramon-Peñaą')
有关更长的正则表达式解释,请参见。基本上,
[\w\h-]
是任何水平空格、单词字符或连字符。结束定界符后的
u
修饰符将
\w
展开,以包括ascii集合之外的单词字符。
是任何单个字符

或者,您可以匹配所有有效字符,然后重新加入它们

preg_match('/[\w\h-]+/u', '»¿Antonio Ramon-Peñaą', $match);
echo implode('', $match);

谢谢你的回复。这起作用了。我也很感激你的解释!谢谢你的回复。这起作用了。我也很感激你的解释!