preg_replace:如何不删除整个部分?

时间:2012-04-14 11:25:42

标签: php preg-replace

我收到了这个字符串:

$string = "hello123hello237ihello523";

我想搜索一个“o”后跟一个数字。然后我想只删除“o”。

我一直在努力:

preg_replace("/kl[0-9]/", "", $string);

问题是这也是删除号码。我只想删除“o”。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

使用积极前瞻:

echo preg_replace("/o(?=[0-9])/", "", $string);

有关详细信息:http://www.regular-expressions.info/lookaround.html

另一个选择是:

echo preg_replace("/o([0-9])/", "\\1", $string);

这将用[编号]

替换o [编号]

答案 1 :(得分:0)

您可以使用反向引用:

echo preg_replace('/o([0-9])/', '$1', $string);

有关引用子模式的信息,请参阅the documentation