PHP rtrim所有尾随特殊字符

PHP rtrim所有尾随特殊字符,php,regex,Php,Regex,我正在制作一个函数,用于检测并删除字符串中所有尾随的特殊字符。它可以转换字符串,如: “你好,世界” “你好,世界/” “你好,世界--” “你好,世界/%-+…” 进入“你好世界” 没有人不写很多代码就知道这个诀窍吗?只是为了好玩 [^a-z\s]+ 说明: [^x]:一个非x字符 \s:“空白字符”:空格、制表符、换行符、回车符、垂直制表符 +:一个或多个 PHP: 试试这个 $string = preg_replace('/[^A-Za-z0-9\-]/', '', $stri

我正在制作一个函数,用于检测并删除字符串中所有尾随的特殊字符。它可以转换字符串,如:

  • 你好,世界
  • 你好,世界/
  • 你好,世界--
  • 你好,世界/%-+…
进入“你好世界”

没有人不写很多代码就知道这个诀窍吗?

只是为了好玩

[^a-z\s]+

说明:
[^x]
:一个非x字符
\s
:“空白字符”:空格、制表符、换行符、回车符、垂直制表符
+
:一个或多个

PHP:

试试这个

  $string = preg_replace('/[^A-Za-z0-9\-]/', '', $string); // Removes special chars.
或者从字符串中转义撇号

preg_replace('/[^A-Za-z0-9\-\']/', '', $string);  // escape apostraphe

您可以使用这样的正则表达式,具体取决于您对“特殊字符”的定义:

它将字符串
$
末尾的非单词字符(
\W
)替换为零<代码>\W将匹配
[^a-zA-Z0-9\
,因此任何不是字母、数字或下划线的内容都将被替换。要指定哪些字符是特殊字符,请使用如下正则表达式,将所有特殊字符放在
[]
括号内:

function clean_string($input) {
    return preg_replace('/[\/%.+-]+$/', '', $input);
}

这就是你要找的

([^\n\w\d\“]*)$

它删除了字母表、数字、空格和新行以外的任何内容。 就这样说吧:


preg\u replace('/([^\n\w\s]*)$/,'$string);

对不起,它错了,它是“你好”。你不需要
\d
这个
\w
包含了这个。它还允许下划线。哦,是的。。谢谢你。
function clean_string($input) {
    return preg_replace('/\W+$/', '', $input);
}
function clean_string($input) {
    return preg_replace('/[\/%.+-]+$/', '', $input);
}