Home >Backend Development >PHP Tutorial >正则应该怎么匹配类似xf0x9fx91xab的数据

正则应该怎么匹配类似xf0x9fx91xab的数据

WBOY
WBOYOriginal
2016-06-23 14:21:261173browse

我正则应该怎么匹配\xf0\x9f\x91\xab。求帮忙!表达式怎么写??


回复讨论(解决方案)

$s = "\xf0\x9f\x91\xab";var_dump(preg_match('/\xf0\x9f\x91\xab/', $s));

$s = "\xf0\x9f\x91\xab";var_dump(preg_match('/\xf0\x9f\x91\xab/', $s));


那你这个只能匹配一个啊。这只是其中的一个。


$s = "\xf0\x9f\x91\xab";var_dump(preg_match('/\xf0\x9f\x91\xab/', $s));


那你这个只能匹配一个啊。这只是其中的一个。
请贴出需要匹配所有内容!!



$s = "\xf0\x9f\x91\xab";var_dump(preg_match('/\xf0\x9f\x91\xab/', $s));


那你这个只能匹配一个啊。这只是其中的一个。
请贴出需要匹配所有内容!!
比如这样:你们好啊\xf0\x9f\x98\x83我今天很\xf0\x9f\x86\x93。这个二进制是不确定的。

如果你的字串是utf-8的话,我没猜错的话,\xf0\x9f\x98\x83 等等是个分隔符,整个字串里面应该只有几种形式,应把它们各自看作一个字符(无字,只起占位、分隔作用)
如果你的字串来自某个API,你最好去看看这个API的说明档

我在你的另一个帖子中已经说过了,可惜你的悟性太差
规则串: /\xf0.../

$s = "这只是程序中的测试文本\xf0\x9f\x98\x83,实际上表情符是用内码表示的\xf0\x9f\x86\x93。";preg_match_all('/\xf0.../', $s, $r);foreach($r[0] as $v) echo current(unpack('H*', $v)), PHP_EOL;
f09f9883
f09f8693

我在你的另一个帖子中已经说过了,可惜你的悟性太差
规则串: /\xf0.../

$s = "这只是程序中的测试文本\xf0\x9f\x98\x83,实际上表情符是用内码表示的\xf0\x9f\x86\x93。";preg_match_all('/\xf0.../', $s, $r);foreach($r[0] as $v) echo current(unpack('H*', $v)), PHP_EOL;
f09f9883
f09f8693
呵呵,我现在参照你的方法这样实现
$text = "这只是程序中的测试文本\xf0\x9f\x98\x83,实际上表情符是用内码表示的\xf0\x9f\x86\x93。";// 回调函数function call($matches){  return "[emoji]".bin2hex($matches[0])."[/emoji]";}echo preg_replace_callback(            "|\xf0...|",            "call",            $text);

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:求正则表达式??Next article:数组问题求助