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);
谢谢你的回复。这起作用了。我也很感激你的解释!谢谢你的回复。这起作用了。我也很感激你的解释!