我想在:
之前的字符串中加粗所有内容并按以下方式执行(PHP):
$string = preg_replace('/(.*):/', '<span class="bold">\\1:</span>', $string);
现在我需要一个例外:如果(
之前有:
,我不想加粗文字。这可能吗?
(所以基本上Size: 123
应该加粗,但We increase this (Max: 30)
不应该加粗)
答案 0 :(得分:2)
当然,只需使用:
$string = preg_replace('/([^(]*):/', '<span class="bold">\\1:</span>', $string);
它将匹配之前的任何字符:except(。
答案 1 :(得分:0)
你要打破......让我们说:一切
<a href="http://example.com"><img src="http://example.com/image.png"/></a>
现在是什么?
我认为,这个Size: 123
不是&#34;某个地方&#34;在页面上。因此,当您输出时,请格式化它
list($name, $value) = array_map('trim', explode(':', $attribute));
echo "<span class=\"bold\">$name</span>: $value";
最好将此作为数组放在首位,如array('Size'=>'123')
答案 2 :(得分:0)
@ blue112几乎就在那里,但为了不在字符串Max
中执行粗体We increase this (Max: 30)
,需要确保整个字符串不包含任何左括号。这是通过添加字符串开头标记^
:
$string = preg_replace('/^([^(]*):/', '<span class="bold">\\1:</span>', $string);
在行动here中查看。