<span>new var[128]; format(var, sizeof(var), "something %s %f", "Stuneris", 1589.0587); SendClientMessage(playerid, 0xFFFFFFFF, var);</span>
我希望"something %s %f"
和"Stuneris"
替换为<span class="numb">"something %s %f"</span>
和<span class="numb">"Stuneris"</span>
其他问题是将0xFFFFFFFF
的HEX代码替换为<span class="numb">0xFFFFFFFF</span>
。
我需要做什么?
答案 0 :(得分:1)
您可以使用preg_replace:
执行此操作preg_replace('/"([^"]*)"/', '<span class="numb">"\1"</span>', $string);
匹配十六进制代码:
preg_replace('/0x([0-9A-Fa-f]*)/', '<span class="numb">\1</span>', $string);
答案 1 :(得分:1)
更换十六进制代码非常简单:
$text = preg_replace('/(0x[0-9a-f]+)/i','<span class="numb">$1</span>',$text);
更换引号内的字符串有点棘手。主要问题是包含"something %s %f"
,但排除", "
(它分隔引用的字符串,但也看起来像带引号的字符串)。如果你可以确定任何字符串中都不会有逗号,你可以使用:
$text = preg_replace('/("[^",]+")/i','<span class="numb">$1</span>',$text);
如果您必须允许使用逗号,则会排除所有以逗号开头的字符串:
$text = preg_replace('/("(?!,)[^"]+")/i','<span class="numb">$1</span>',$text);