str_replace 留下空格 PHP
str_replace leaving whitespace PHP
这是我要更改的变量:
$last = 'Some string 1 foobar'
和我的替换语句
$last = str_replace(['1', '2'], '', $last);
最后是输出
Some string foobar
如何去掉 'string' 和 'foobar' 之间的空格,我最初的想法是在我的 str_replace
语句中使用 ''
作为替换也删除了空格,但它没有。
澄清一下,我想知道如何制作 Some string foobar
而不是 Some stringfoobar
。
基于正则表达式的方法对于此类内容更灵活:
<?php
$subject = 'Some string 1 foobar';
var_dump(preg_replace('/\d\s?/', '', $subject));
以上代码的输出为:string(18) "Some string foobar"
这是做什么的,它是如何工作的?它取代了 模式 ,而不是固定的文字字符串。这里的模式是:任何数字 (\d
) 以及一个 可能 现有的白色 space 字符 (\s?
)。
另一种不同的替代方法是:
<?php
$subject = 'Some string 1 foobar';
var_dump(preg_replace('/(\s\d)+\s/', ' ', $subject));
这将替换由一个或多个数字前面有一个白色 space ((\s\d)+
) 以及一个白色 space 和一个白色空白组成的任何序列特点。
如果你不想使用 preg_replace
那么你可以这样做。
$result = 'Some string 1 foobar';
$result = str_replace(['1', '2'], '', $result);
$result = str_replace(' ', ' ', $result);
不过我不得不承认我更喜欢preg_replace解决方案。虽然不确定基准。
这是我要更改的变量:
$last = 'Some string 1 foobar'
和我的替换语句
$last = str_replace(['1', '2'], '', $last);
最后是输出
Some string foobar
如何去掉 'string' 和 'foobar' 之间的空格,我最初的想法是在我的 str_replace
语句中使用 ''
作为替换也删除了空格,但它没有。
澄清一下,我想知道如何制作 Some string foobar
而不是 Some stringfoobar
。
基于正则表达式的方法对于此类内容更灵活:
<?php
$subject = 'Some string 1 foobar';
var_dump(preg_replace('/\d\s?/', '', $subject));
以上代码的输出为:string(18) "Some string foobar"
这是做什么的,它是如何工作的?它取代了 模式 ,而不是固定的文字字符串。这里的模式是:任何数字 (\d
) 以及一个 可能 现有的白色 space 字符 (\s?
)。
另一种不同的替代方法是:
<?php
$subject = 'Some string 1 foobar';
var_dump(preg_replace('/(\s\d)+\s/', ' ', $subject));
这将替换由一个或多个数字前面有一个白色 space ((\s\d)+
) 以及一个白色 space 和一个白色空白组成的任何序列特点。
如果你不想使用 preg_replace
那么你可以这样做。
$result = 'Some string 1 foobar';
$result = str_replace(['1', '2'], '', $result);
$result = str_replace(' ', ' ', $result);
不过我不得不承认我更喜欢preg_replace解决方案。虽然不确定基准。