1

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

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

谢谢

4

1 回答 1

0

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

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

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

于 2013-05-31T22:49:46.827 回答