【问题标题】:regex to remove all unicode emojis in QT5正则表达式删除 QT5 中的所有 unicode 表情符号
【发布时间】:2017-06-15 15:45:37
【问题描述】:

我需要从 QString 中删除所有 unicode 表情符号,所以我尝试编写一个正则表达式:

    QRegularExpression uTF8Emojis("([\\xD83D][\\xDE00-\\xDFFF])+");

但这并没有检测到任何东西......

【问题讨论】:

  • 试试"[\\x{1F600}-\\x{1F7FF}]+"。但是,您要删除的表情符号可能来自另一个 Unicode 范围。
  • 这个语法似乎有效,谢谢!
  • 这个更简单的正则表达式是否适用于 qt5 以及 javascript? stackoverflow.com/a/64007175/8186898

标签: regex unicode qt5


【解决方案1】:

由于 Qt5 QRegularExpression 是 PCRE 驱动的,您可以使用 \x{...} 表示法中的字符的整个代码点,无需将这些表情符号定义为字节序列:

"[\\x{1F600}-\\x{1F7FF}]+"

您可以使用this online converter:将\uD83D\uDE00-\uD83D\uDFFF 粘贴到JavaScript 字段中,然后单击转换 以在U+hex 字段。

【讨论】:

  • 一些星体字符不在该范围内,我会推荐 10000-10FFFF。根据stackoverflow.com/questions/24672834/…
  • @e.jahandar: 是的,如果输入中没有星体字符可以保留。表情符号很多,要覆盖的范围更多。我刚刚将 OP 正则表达式转换为 QT 可用形式。
猜你喜欢
  • 2019-05-10
  • 2016-02-08
  • 2018-01-28
  • 2018-05-13
  • 2017-01-24
  • 2020-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多