如何在PHP中替换字符串中的非ASCII字符?

时间:2014-08-11 06:05:27

标签: php html regex

我需要替换字符串中不用单个字节表示的字符。

我的字符串就像这样

$inputText="centralkøkkenet kliniske diætister"; 

在该字符串中有øæ等字符。应替换这些字符。如何在正则表达式中提及这些我可以用于替换?

2 个答案:

答案 0 :(得分:0)

如果您想要替换除字母数字和空格字符以外的所有内容,请尝试使用它。

[^a-zA-Z0-9 ]

这是demo

示例代码:

$re = "/[^a-zA-Z0-9 ]/";
$str = "centralkøkkenet kliniske diætister";
$subst = '';

$result = preg_replace($re, $subst, $str);

更好地使用[^\w\s][\W\S]使其简洁明了,如@ hjpotter92以及评论所示。

模式说明:

[^\w\s]                any character except: word characters:
                        (a-z, A-Z, 0-9, _), whitespace (\n, \r, \t,\f, and " ")

[\W\S]                 any character of: 
                         non-word characters (all but a-z, A-Z, 0-9, _), 
                         non-whitespace (all but \n, \r, \t, \f, and " ")

答案 1 :(得分:0)

如果你想保持标点符号即:-'"! ...,请使用以下标题:

$text = 'central-køkkenet "kliniske" diætister!';
$new = preg_replace('/[\x7F-\xFF]/ui', '', $text);
echo $new,"\n";

<强>输出:

central-kkkenet "kliniske" ditister!