trim() 任何不是字母或数字的前导字符或尾部字符



如何trim()以下句子

,, This is New, A new Sentence.,

成为

This is New, A new Sentence

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

$str = ",, This is New, A new Sentence., ";
$str = trim(rtrim($str));

结果与trimrtrim(),, This is New, A new Sentence.,或两者加在一起总是相同的

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

如果解决方案使用preg_replace(),则当前使用的RegExpreg_replace('/[s,]+/',',',trim(rtrim($str)))

尝试以下操作:

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

要使用/[s,]+/,请尝试以下操作:

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

regex将从字符串中删除所有不是字母数字的尾随字符和前导字符。trim()将删除空白

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

字符串的开头和结尾应该是一个字母(或者可能是数字)

在这种情况下,通过REGEX删除任何违反此规则的内容。

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

相关内容

  • 没有找到相关文章

最新更新