使用php在特定字符后添加空格

时间:2015-12-26 15:53:30

标签: php html string

我尝试使用谷歌搜索并没有任何帮助。我对PHP缺乏经验。我希望问题很明确。

所以我想要的是在字符串

中的特定字符后面加一个空格

喜欢来自:

1234b1

为:

1234b 1

我需要一个代码才能为我做这件事

注意:无需用勺子喂我。

2 个答案:

答案 0 :(得分:6)

一种相当优雅的方法是使用regex

$input = '1234b1';
$pattern = '/b/';
$replacement = '$0 ';
$output = preg_replace($pattern,$replacement,$input);

使用PHP的交互式shell运行它:

$ php -a
Interactive mode enabled

php > $input = '1234b1';
php > $pattern = '/b/';
php > $replacement = '$0 ';
php > $output = preg_replace($pattern,$replacement,$input);
php > echo $output;
1234b 1

编辑:如果您想跳过某一行,请使用$replacement更新"\$0\n",或者如果您想要HTML新行:$0<br>:< / p>

$input = 'abbbbasasjscxxxxc';
$pattern = '/c/';
$replacement = "\$0\n"; //'$0<br>' for HTML
$output = preg_replace($pattern,$replacement,$input);
echo $output;

答案 1 :(得分:2)

我认为你可以在这里找到一个简单的字符串替换。

$string = '1234b1';
echo str_replace('b', "b<br>\n", $string);

输出:

1234b
1

演示: https://eval.in/493496 https://eval.in/493503

如果角色不是b,但你需要一个正则表达式。

一种正则表达式方法,它将用字符和换行替换任何字母字符。

$string = '1234b1';
echo preg_replace('/([a-z])/', '$1' . "<br>\n", $string);

如果只交换b,请将[a-z]替换为b[]是一个字符类,意味着允许内部字符a-z是一系列字符。

<br>是因为它似乎是在浏览器中输出它;如果不是那些可以删除。任何非浏览器都会逐字显示<br>