PHP preg_split只在一行中删除了尾随空格?

Pol*_*ino 1 php regex preg-replace preg-split

我如何摆脱preg_split结果中的尾随空格而不使用preg_replace先从$test字符串中删除所有空格?

$test   = 'One , Two,   Thee   ';
$test   = preg_replace('/\s+/', ' ', $test);
$pieces = preg_split("/[,]/", $test);
Run Code Online (Sandbox Code Playgroud)

Kai*_*aii 5

如果必须preg_split()(你实际上在问题中要求)那么这可能会有所帮助:

$test   = 'One , Two,   Thee   ';
$pieces = preg_split("/\s*,\s*/", trim($test), -1, PREG_SPLIT_NO_EMPTY);
Run Code Online (Sandbox Code Playgroud)

trim()用于删除第一个元素之前和最后一个元素之后的空格.(preg_split()没有 - 它只删除逗号周围的空格)

  • @Polmonino第三个参数是限制,-1实际上意味着"获取所有元素,没有限制".这是默认值,但是如果要使用第四个参数,则必须明确指定它. (2认同)