我试图写一个脚本,但一直被卡住。
我有一个变量$message
。我想解析它。这样,*和*之间包含的所有内容都可以是不同的颜色。例如:
This is message * 1
不会受到影响。但是
This is a *message* see how it works *again here*.
将具有不同颜色的message
和again here
。
使用正则表达式:
$in = 'This is a *message* see how it works *again here*.';
$out = preg_replace('/'*([^*]+)'*/', '<span class="color">$1</span>', $in);
print $out;
比不贪婪的火柴快一点。
使用explode
拆分星号上的字符串。之后,您可以输出数组中的每个元素,并在它们之间使用正确的标记来更改颜色。
类似这样的东西:
$parts = explode('*', $message);
$italic = false;
for ($part in $parts)
{
if ($italic)
echo '<i>' . $part . '</i>';
else
echo $part;
$italic = !$italic;
}
我建议使用preg_replace()
:
$message = preg_replace("#'*(.*?)'*#", "<span class='"color-red'">''1</span>", $message);
$output = preg_replace('/'*([^*]+)'*/', '<em>$1</em>', $message);
或
$output = preg_replace('/'*(.+?)'*/', '<em>$1</em>', $message);
$message = 'This is a *message* see how it works *again here*.';
$colorMessage = preg_replace('/'*([^'*]+|['w]+)'*/', "<span class='color2'>$0</span>", $message);