Remove extra space at the end of string using preg

2019-02-14 15:31发布

问题:

I want to replace the extra space at the end of the string with nothing using preg_replace in PHP. I was creating a big database of words and somehow a few words got extra white space at the end.

回答1:

You should use rtrim instead. It will remove extra white space at the end of a string and is faster than using preg_replace.

$str = "This is a string.    ";
echo rtrim($str);

Speed Comparison - preg_replace v. 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);

Results

preg_replace: 0.000036
rtrim: 0.000004

As you can see, rtrim is actually nine times faster.



回答2:

why not just use trim() http://php.net/manual/en/function.trim.php



回答3:

with preg_replace as you wanted :

$s = ' okoki efef ef ef   
';

print('-'.$s.'-<br/>');

$s = preg_replace('/\s+$/m', '', $s);

print('-'.$s.'-');