从字符串php删除十六进制

时间:2014-11-01 05:52:06

标签: php preg-replace

我有一个像

这样的字符串

0xffffffHello there 0x32ac49human! Nice to 0x334455meet you!

删除所有十六进制子串的最佳方法是什么?每个十六进制子字符串总是6个字符(颜色代码)

输出为Hello there human! Nice to meet you!

2 个答案:

答案 0 :(得分:3)

使用正则表达式和preg_replace将是您的最佳选择。

例如:

echo preg_replace('/0x[0-9a-fA-F]{6}/', '', '0xffffffHello there 0x32ac49human! Nice to 0x334455meet you!');

输出:

Hello there human! Nice to meet you!

正则表达式故障伪代码:

/
    0x            #Match '0x'
    [0-9a-fA-F]   #Match any hex character.
    {6}           #Require the hex character match to match 6 times.
/

答案 1 :(得分:0)

你只需为此组装一个正则表达式。

  • 0x可以按字面匹配。

  • [[:xdigit:]]是匹配十六进制数字的posix character class

  • 需要重复{6}

最后,只为preg_replace添加/分隔符。