如何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));
结果与trim
和rtrim()
,, This is New, A new Sentence.,
或两者加在一起总是相同的
是否可以使用trim()
函数处理此问题?
如果解决方案使用preg_replace()
,则当前使用的RegEx
是preg_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);