regular-expression从字符串中剥离Minecraft颜色代码

时间:2012-11-03 22:02:02

标签: php regex

Minecraft客户端使用以下格式为消息着色: §6金色文字

其中§表示颜色代码的开头和后面的字符([0-9A-FK-OR])。有没有办法可以使用preg_replace从字符串中删除所有这些?

(?i)§[0-9A-FK-OR]

3 个答案:

答案 0 :(得分:4)

使用

$s = preg_replace('/\xA7[0-9A-FK-OR]+/i', '', $s);

答案 1 :(得分:1)

不适用于某些单词。它剥离了很多。试试这个......

$s = preg_replace('/\xA7[0-9A-FK-OR]/i', '', $s);

答案 2 :(得分:0)

这会删除颜色代码:

$motd = preg_replace('/\xa7./','',$motd);

您可能还想删除0xc2字符:

$motd = preg_replace('/\xc2|\xa7./','',$motd)

但是,由于服务器可以发送任何内容,包括恶意字符串,这样会更好:

$motd = preg_replace('/\xa7./','',$motd);
$motd = filter_var($motd,FILTER_SANITIZE_SPECIAL_CHARS,FILTER_FLAG_STRIP_LOW|FILTER_FLAG_STRIP_HIGH);