首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >正则表达式中的最大十六进制值

正则表达式中的最大十六进制值
EN

Stack Overflow用户
提问于 2014-01-07 00:31:55
回答 4查看 3.1K关注 0票数 20

在不使用u标志的情况下,可以使用的十六进制范围是[\x{00}-\x{ff}],但是如果使用u标志,则可以使用4字节值\x{7fffffff} ([\x{00000000}-\x{7fffffff}])。

因此,如果我执行以下代码:

代码语言:javascript
复制
preg_match("/[\x{00000000}-\x{80000000}]+/u", $str, $match);

将收到此错误

代码语言:javascript
复制
Warning: preg_match(): Compilation failed: character value in \x{...} sequence is too large

所以我不能匹配一个像这样的字母和等价的十六进制值f0 a1 83 81。问题不是如何匹配这些字母,而是这个范围&这个边界来自as u修饰符应该如何将字符串视为UTF-16

代码语言:javascript
复制
echo PCRE_VERSION;

使用PHP 5.3.24 - 5.3.28、5.4.14 -5.5.7的PCRE版本:

代码语言:javascript
复制
8.32 2012-11-30

带有PHP 5.3.19 - 5.3.23、5.4.9 -5.4.13的PCRE版本:

代码语言:javascript
复制
8.31 2012-07-06

http://3v4l.org/CrPZ8

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20954580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档