在 Python 中的字符串中查找 Unicode 的所有匹配项


import re
b="united thats weak. See ya   "
print b.decode('utf-8')  #output: u'united thats weak. See ya U0001f44b'
print re.findall(r'[U0001f600-U0001f650]',b.decode('utf-8'),flags=re.U) # output: [u'S']

如何获取输出U0001f44b.请帮忙

我需要处理的表情符号是"❤️">

搜索 unicode 范围与搜索任何类型的字符范围完全相同。但是,您需要正确表示字符串。这是一个工作示例:

#coding: utf-8
import re
b=u"united thats weak. See ya    "
assert re.findall(u'[U0001f600-U0001f650]',b) == [u'  ']
assert re.findall(ur'[  -  ]',b) == [u'  ']

笔记:

  • 您需要在程序的第一行或第二行上#coding: utf-8或类似内容。
  • 在您的示例中,您使用的表情符号 U-1f44b 不在 U-1f600 到 U-1f650 范围内。在我的示例中,我使用了一个。
  • 如果要使用U包含 unicode 字符,则不能使用原始字符串前缀 (r'')。
  • 但是,如果您使用字符本身(而不是U转义),则可以使用原始字符串前缀。
  • 您需要确保模式和输入字符串都是 unicode 字符串。它们都不能是 UTF8 编码的字符串。
  • 但是你不需要re.U标志,除非你的模式包含sw或类似的东西。

最新更新