我有一个看似简单的查询。 我在PHP中有以下代码:
$newThumb = str_replace('style="width:170px;"','',$nolinkThumb);
我遇到的问题是数字'170'可以是任意数字,因此我希望我的str_replace能够反映这一点。我尝试过使用:
$newThumb = str_replace('style="width:[0-9]px;"','',$nolinkThumb);
但这不起作用。任何帮助将不胜感激。
谢谢
答案 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数字并替换整个字符串
希望有所帮助