0

我想将 a 之前的字符串中的所有内容加粗,:并按照以下方式(PHP):

$string = preg_replace('/(.*):/', '<span class="bold">\\1:</span>', $string);

现在我需要一个例外:(如果:. 这可能吗?

(所以基本上Size: 123应该加粗,但We increase this (Max: 30)不应该加粗)

4

3 回答 3

2

当然,只需使用:

$string = preg_replace('/([^(]*):/', '<span class="bold">\\1:</span>', $string);

它将匹配 : 之前的任何字符,除了 (.

于 2013-02-21T12:32:49.860 回答
0

你要崩溃了......让我们说:一切

<a href="http://example.com"><img src="http://example.com/image.png"/></a>

怎么办?

我认为,这Size: 123不是页面上的“某处”。所以格式化它,当你输出它时

list($name, $value) = array_map('trim', explode(':', $attribute));
echo "<span class=\"bold\">$name</span>: $value";

最好首先将其作为数组,例如array('Size'=>'123')

于 2013-02-21T12:38:28.313 回答
0

@blue112 几乎就在那里,但为了不在Max字符串中加粗,We increase this (Max: 30)需要确保整个字符串不包含任何左括号。这是通过添加字符串开头标记来完成的^

$string = preg_replace('/^([^(]*):/', '<span class="bold">\\1:</span>', $string);

在这里查看它的实际应用。

于 2013-02-21T12:53:44.243 回答