PHP str_replace任意数字模式

时间:2013-11-01 09:27:18

标签: php str-replace

我有一个看似简单的查询。 我在PHP中有以下代码:

$newThumb = str_replace('style="width:170px;"','',$nolinkThumb);

我遇到的问题是数字'170'可以是任意数字,因此我希望我的str_replace能够反映这一点。我尝试过使用:

$newThumb = str_replace('style="width:[0-9]px;"','',$nolinkThumb);

但这不起作用。任何帮助将不胜感激。

谢谢

3 个答案:

答案 0 :(得分:5)

您需要使用正则表达式,但正则表达式中的[0-9]表示“数字0到9重复一次”。

您实际搜索的是[0-9]+,表示“数字0到9重复一次或多次”:

$string = preg_replace('/style="width:[0-9]+px;"/', '', $string);

答案 1 :(得分:1)

您需要使用str_replace来支持正则表达式,而不是使用preg_replace。更多信息可以在这里找到:http://php.net/manual/en/function.preg-replace.php

因此,例如,您可以使用:

$newThumb = preg_replace('/style="width:[0-9]+px;"/', '', $nolinkThumb);

尽管如此,您应该考虑正确生成HTML,以便从内容和业务逻辑中单独保存样式(例如,在CSS文件中)。

答案 2 :(得分:0)

$newThumb = preg_replace('/style="width:[0-9]{1,}px;/', '', $nolinkThumb);

这个正则表达式也有效。匹配1-X数字并替换整个字符串

希望有所帮助