Php trim()非';t字母或数字

Php trim()非';t字母或数字,php,Php,我怎样才能trim() ,这是新的,一个新句子。, 成为 这是一个新的句子 我试过一起使用trim()和rtrim(),但都不起作用 $str = ",, This is New, A new Sentence., "; $str = trim(rtrim($str)); 与trim和rtrim(),或一起使用,结果始终相同。这是新的,一个新句子。, 是否可以使用trim()函数处理此问题 如果解决方案使用的是preg_replace(),那么我当前使用的RegEx就是preg_replace

我怎样才能
trim()

,这是新的,一个新句子。,

成为

这是一个新的句子

我试过一起使用
trim()
rtrim()
,但都不起作用

$str = ",, This is New, A new Sentence., ";
$str = trim(rtrim($str));
trim
rtrim()
,或一起使用,结果始终相同。这是新的,一个新句子。,

是否可以使用
trim()
函数处理此问题


如果解决方案使用的是
preg_replace()
,那么我当前使用的
RegEx
就是
preg_replace('/[\s,]+/',',',,trim(rtrim($str))
这是一个业务逻辑问题,即目标。在你的情况下,似乎是:

字符串的开头和结尾应该是字母(或数字)。

在这种情况下,通过正则表达式,删除任何违反此规则的内容

preg_replace('/^[^a-z0-9]+|[^a-z0-9]+$|[\s,]{2,}/i', '', $str);

这是一个业务逻辑问题,即目标。在你的情况下,似乎是:

字符串的开头和结尾应该是字母(或数字)。

在这种情况下,通过正则表达式,删除任何违反此规则的内容

preg_replace('/^[^a-z0-9]+|[^a-z0-9]+$|[\s,]{2,}/i', '', $str);
请尝试以下操作:

$str = ",, This is New, A new Sentence., ";
$str = trim(preg_replace("/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/", '', $str));

var_dump($str);
$str = trim(preg_replace_callback_array([
    "/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/" => function($match){}, 
    "/[\s,]+/" => function ($match)
    {
        return ",";
    }
    ], $str));
要同时使用
/[\s,]+/
,请尝试以下操作:

$str = ",, This is New, A new Sentence., ";
$str = trim(preg_replace("/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/", '', $str));

var_dump($str);
$str = trim(preg_replace_callback_array([
    "/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/" => function($match){}, 
    "/[\s,]+/" => function ($match)
    {
        return ",";
    }
    ], $str));
正则表达式将从字符串中删除所有非字母数字的尾随字符和前导字符。而
trim()
将删除空白

请尝试以下操作:

$str = ",, This is New, A new Sentence., ";
$str = trim(preg_replace("/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/", '', $str));

var_dump($str);
$str = trim(preg_replace_callback_array([
    "/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/" => function($match){}, 
    "/[\s,]+/" => function ($match)
    {
        return ",";
    }
    ], $str));
要同时使用
/[\s,]+/
,请尝试以下操作:

$str = ",, This is New, A new Sentence., ";
$str = trim(preg_replace("/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/", '', $str));

var_dump($str);
$str = trim(preg_replace_callback_array([
    "/^[^A-Za-z0-9]+|[^A-Za-z0-9]+$/" => function($match){}, 
    "/[\s,]+/" => function ($match)
    {
        return ",";
    }
    ], $str));

正则表达式将从字符串中删除所有非字母数字的尾随字符和前导字符。而
trim()
将删除空白

trim()
用于删除空白,而不是任何其他字符。一个解决方案是使用regexused$str=rtrim(trim(ltrim($str,,,,'),',')@这是不正确的<代码>修剪-从字符串的开头和结尾删除空格(或其他字符)是否“完整”句子不包括结束句点?:)@Odyssey 1111开头和结尾不能有任何特殊字符,只有字母和数字,结尾也可以使用
/
trim()
用于删除空白,而不是任何其他字符。一个解决方案是使用regexused$str=rtrim(trim(ltrim($str,,,,'),',')@这是不正确的<代码>修剪-从字符串的开头和结尾删除空格(或其他字符)是否“完整”句子不包括结束句点?:)@奥德赛1111开头和结尾不能有任何特殊字符,只有字母和数字,
/
结尾也可以接受。你不想也包括大写字母a-Z吗?是的,但OP提供的示例,这是新的,一个新句子,确实是以大写字母开头的好地方-我混淆了不同的问题。编辑。中间的逗号呢?哪些需要保留ryt?如果可能的话,我如何用我的
/[\s,]+/
实现你的正则表达式?你不想也包括大写字母A-Z吗?是的,但OP提供的示例,这是新的,一个新句子,确实是从大写字母开始的好地方-我混淆了不同的问题。编辑。中间的逗号呢?哪些需要持久化ryt?如果可能,如何使用我的
/[\s,]+/
实现您的正则表达式?