我如何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)))
答案 0 :(得分:2)
这是一个业务逻辑问题,即目标。在你的情况下似乎是:
字符串的开头和结尾应该是一个字母(或大概是数字)。
在这种情况下,通过REGEX,剥离违反此规定的任何内容。
preg_replace('/^[^a-z0-9]+|[^a-z0-9]+$|[\s,]{2,}/i', '', $str);
答案 1 :(得分:2)
尝试以下方法:
$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));
正则表达式将删除字符串中不是字母数字的所有尾随和前导字符。 trim()
将删除空白