1

我必须在此示例文本中更改两件事:

example_1,example_2

我需要以这种方式出现: example 1, example 2

所以我需要用空格“”替换“_”以及用空格替换“,”到“,”。目前我在下面有这段代码,它可以很好地替换下划线,但我不知道如何在这段代码中集成“,”部分。

str_replace('_', ' ', $test)

会不会是这样的:

str_replace(('_', ' ',),(',', ' '), $test)
4

5 回答 5

5

或者,在一行中,您可以使用类似于以下内容的正则表达式:

preg_replace("/_(.*)\,/", " \\1, ", "Example_1,Example_2");

上面的代码有一个限制,它不会替换逗号分隔列表中的最后一个元素。下面通过使用 ? 使逗号成为可选来缓解该问题。修饰符。

echo preg_replace("/_(\d)(\,?)/", " \\1\\2 ", "Example_1,Example_2");

该表达式现在可以正常工作,但应注意您的最终字符串可能会在末尾附加一个空格字符('')。不是世界末日,但应该注意。

于 2013-06-10T17:13:26.370 回答
3

您可以使用strtr同时进行多个替换:

strtr($test, array('_' => ' ', ',' => ', '));
于 2013-06-10T17:14:52.597 回答
1

这段代码可以完成工作:

$cadena = "example_1,example_2";
$salida = str_replace("_", " ", $cadena);
$salida = str_replace(",", ", ", $salida);

echo $salida;

数组版本:

$buscar = array("_",",");
$reeemplazar = array(" ",", ");
$sal = str_replace($buscar, $reeemplazar, $cadena);

echo $sal;
于 2013-06-10T17:09:39.950 回答
0
<?php

$str = 'example_1,example_2';

$str = str_replace('_', ' ', $str);

$str = str_replace(',', ', ', $str);
echo $str;

检查键盘 - http://codepad.org/am4L4v91

或者甚至这有效 -

<?php

$str = 'example_1,example_2';
$match = array('_' =>' ', ',' => ', ');
$str = strtr($str, $match);

echo $str;

检查密码键盘 - http://codepad.org/2AI9Pt7x

于 2013-06-10T17:10:18.587 回答
0

您可以执行以下操作:

$string = 'example_1,example_2';
$new = str_replace(array('_', ','), array(' ', ', '), $string);
echo $new;

由于str_replace()接受一个数组。

您还可以使用正则表达式,当有这样的带有多个空格的意外数据时,这很方便:

示例_1、示例_2、示例_3

$string = 'example_1, example_2   , example_3';
$new = preg_replace(array('#_#', '#\s*,\s*#'), array(' ', ', '), $string);
echo $new;

where\s*表示匹配 0 个或多个空格。

于 2013-06-10T17:16:17.183 回答