1

我得到了这个字符串:

$string = "hello123hello237ihello523";

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

我一直在尝试:

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

问题是它也删除了数字。我只想删除“o”。有任何想法吗?

4

2 回答 2

2

使用积极的前瞻:

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

欲了解更多信息:http ://www.regular-expressions.info/lookaround.html

另一种选择是:

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

这将用 [number] 替换 o[number]

于 2012-04-14T11:29:26.910 回答
0

您可以使用反向引用:

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

有关引用子模式的信息,请参阅文档

于 2012-04-14T11:36:52.197 回答