javascript - Unicode 正则表达式 : Compilation failed: range out of order in character class

标签 javascript php regex

我转换了取自 https://twemoji.maxcdn.com/v/latest/twemoji.js 的正则表达式匹配从 javascript 到 php 的表情符号相关的 Unicode 字符。

当我使用 regex101.com 测试转换后的正则表达式时,它按预期工作

但是,当我在本地环境中测试时,它不起作用。

您可以在此处查看工作示例 https://regex101.com/r/IuIhBF/1

这是 PHP 版本。 http://sandbox.onlinephpfunctions.com/code/3bd5933f5230fc1c45104b7eccd9379b68870016

我尝试更改 preg_match_all 标志。 将 u 添加到正则表达式 ex:/*****/u

无法正常工作

如果有人能帮我解决这个错误,那就太好了: 编译失败:字符类中偏移量 306 处的范围乱序。

最佳答案

对于 emoji,您应该使用 Utf-16 代理项对正则表达式。
utf-8/32 正则表达式太慢了。

请参阅此链接以获取 Unicode 版本 12 表情符号正则表达式和测试。
耗时3.4秒,如果超时(默认2s),就超时
在设置中。

相比之下,utf-8/32 正则表达式需要将近 40 秒(需要//u 标志)。

因此,一定要坚持使用表情符号正则表达式的代理对。

https://regex101.com/r/k61Df5/1

关于javascript - Unicode 正则表达式 : Compilation failed: range out of order in character class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57172819/

相关文章:

javascript - 我的 html 代码不能作为目标空白

javascript - 如何在 javascript/JQuery 中将 json 对象值清除为空?

php - 需要二维码帮助才能获得入场二维码门票

php - 使用 PHPUnit 和 Selenium 设置测试

javascript - Regex.test() 给出真假顺序?

javascript - 匹配没有查询字符串的 Url 路径

javascript - UploadCare 在关闭对话框时不显示警报

javascript - Knex.js,将 '.orWhereExists' 嵌套到过滤器字段中,以包含男性、女性或两者的选项

php - URL 的 "enough sanitization"是什么

php - 雅虎用户名正则表达式