【发布时间】:2020-02-04 04:00:38
【问题描述】:
我有一个带有 Unicode 的字符串。我想将字符串拆分为以Unicode为分隔符的左子字符串和右子字符串。
例如,给定的字符串是:
str = 'Oh wow. Magnificent! Ariadna Garcia! <U+2764> <U+2764> wonderful'
我想输出为:
leftstr = 'Oh wow. Magnificent! Ariadna Garcia!'
uni_code = '<U+2764> <U+2764>'
rightstr = 'wonderful'
我想过使用正则表达式来识别 Unicode,然后使用 find() 找到 Unicode 的索引。然后使用带索引的字符串切片和切割方法,即leftstr = 起始索引比unicode的索引小一。然后,rightstr = (Unicode 的起始索引+Unicode 的长度) 直到字符串的结尾。 问题是我识别 Unicode 的正则表达式不起作用。我觉得,我的方法很复杂。有没有什么优雅的方法可以得到想要的子字符串作为输出。
下面的代码,我已经试过了:
import re str1 = 'Oh wow. Magnificent! Ariadna Garcia! <U+2764> wonderful'
pattern = r'<U\+.*?>'
indx = str1.find(pattern)
print(indx)
正则表达式未按预期工作。
【问题讨论】:
-
您的字符串中是否字面意思有字符
<U+2764>(长度为8)?还是 actual Unicode 字符 U+2764 (❤) 的占位符? -
是的,我的字符串中有 Unicode U+2764 (❤)。
-
字符串中的每个字符都是 Unicode 字符,因此您必须更具体地说明您想要什么。例如,U+004F 是
O。 -
好的!我只关心表情符号 Unicode。
标签: regex python-3.x string unicode