我有一个看起来很简单的查询。我在 PHP 中有以下代码:
$newThumb = str_replace('style="width:170px;"','',$nolinkThumb);
我遇到的问题是数字“170”可以是任何数字,因此我希望我的 str_replace 能够反映这一点。我试过使用:
$newThumb = str_replace('style="width:[0-9]px;"','',$nolinkThumb);
但这不起作用。任何帮助将不胜感激。
谢谢
我有一个看起来很简单的查询。我在 PHP 中有以下代码:
$newThumb = str_replace('style="width:170px;"','',$nolinkThumb);
我遇到的问题是数字“170”可以是任何数字,因此我希望我的 str_replace 能够反映这一点。我试过使用:
$newThumb = str_replace('style="width:[0-9]px;"','',$nolinkThumb);
但这不起作用。任何帮助将不胜感激。
谢谢
您需要使用正则表达式,但[0-9]
在正则表达式中表示“数字 0 到 9 重复一次”。
您实际搜索的是[0-9]+
“数字 0 到 9 重复一次或多次”:
$string = preg_replace('/style="width:[0-9]+px;"/', '', $string);
而不是使用str_replace
你需要使用preg_replace
来支持正则表达式。更多信息可以在这里找到:http: //php.net/manual/en/function.preg-replace.php
因此,例如,您可以使用:
$newThumb = preg_replace('/style="width:[0-9]+px;"/', '', $nolinkThumb);
不过,您可能应该着眼于正确生成 HTML,以便将样式与内容和业务逻辑分开(例如,在 CSS 文件中)。
$newThumb = preg_replace('/style="width:[0-9]{1,}px;/', '', $nolinkThumb);
这个正则表达式也有效。匹配 1-X 位并替换整个字符串
希望能帮助到你