我想使用 PHP 中的
preg_replace
将字符串末尾的额外空格替换为空。我正在创建一个单词数据库,但是某些单词的末尾多了一些空格。preg_replace
将字符串末尾的额外空格替换为空。我正在创建一个单词数据库,但是某些单词的末尾多了一些空格。rtrim
函数,因为它可以删除字符串末尾的额外空格,并且比使用preg_replace
更快。$str = "This is a string. ";
echo rtrim($str);
速度比较 - preg_replace
vs. trim
// Our string
$test = 'TestString ';
// Test preg_replace
$startpreg = microtime(true);
$preg = preg_replace("/^\s+|\s+$/", "", $test);
$endpreg = microtime(true);
// Test trim
$starttrim = microtime(true);
$trim = rtrim($test);
$endtrim = microtime(true);
// Calculate times
$pregtime = $endpreg - $startpreg;
$trimtime = $endtrim - $starttrim;
// Display results
printf("preg_replace: %f<br/>", $pregtime);
printf("rtrim: %f<br/>", $trimtime);
结果
preg_replace: 0.000036
rtrim: 0.000004
如您所见,rtrim
的速度实际上要快 九倍。
使用 preg_replace 就像你想要的一样:
$s = ' okoki efef ef ef
';
print('-'.$s.'-<br/>');
$s = preg_replace('/\s+$/m', '', $s);
print('-'.$s.'-');
trim
常常比preg_replace
更快。作为一个基本准则,你应该优先使用内置的 PHP 函数,而不是转向正则表达式。 - Michael Irigoyen