如何仅在开头和结尾替换特殊字符


how to replace special characters only at the beginning and end

我目前正在使用此代码来替换特殊字符,我想知道是否有一种方法可以只替换第一个和最后一个字符,并将其留在中间。

$name = preg_replace('/[^ 'p{L}'p{N} '@ '_ '- '.'#'$'&]/u', '', $name);

谢谢

使用$name = preg_replace(array('/^['W|'d]+/','/['W|'d]+$/'), '', $name);,这将从字符串的开始和结束删除每个非字母字符(包括重音字符)和数字。如果您想保留数字,请删除|'d两次。

如果你喜欢Unicode正则表达式(请参阅:http://www.regular-expressions.info/unicode.html)try: $name = preg_replace(array('/^'P{L}+/u','/'P{L}+$/u'), '', $name);

如果您只需要替换一组固定的字符,如'&-_ ',您也可以使用trim()