[英]How to replace non-ASCII characters in a string in PHP?
我需要替换字符串中没有用单个字节表示的字符。
我的绳子是这样的
$inputText="centralkøkkenet kliniske diætister";
该字符串中包含ø和æ之类的字符。 这些字符应被替换。 如何在可用于替换的正则表达式中提及这些内容?
如果要替换字母数字和空格字符以外的所有内容,请尝试一下。
[^a-zA-Z0-9 ]
这是演示
样例代码:
$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 " ")
如果您还想保留标点符号,例如: -'"!
...,请使用以下符号:
$text = 'central-køkkenet "kliniske" diætister!';
$new = preg_replace('/[\x7F-\xFF]/ui', '', $text);
echo $new,"\n";
输出:
central-kkkenet "kliniske" ditister!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.