我想将包含重音字符的字符串拆分为多个字符,而不将重音和字母分开。
就是一个简单的例子
>>> o = u"šnjiwgetit"
>>> print u" ".join(o)
s ̌ n j i w g e t i t
或
>>> print list(o)
[u's', u'u030c', u'n', u'j', u'i', u'w', u'g', u'e', u't', u'i', u't']
而我希望结果是š n j i w g e t i t
,这样重音就保持在辅音之上。
该解决方案应适用于更困难的字符,如h̭ɛ̮ŋkkɐᴅ
您可以使用regex对字符进行分组。以下是这样做的示例代码:
import re
pattern = re.compile(r'(w[u02F3u1D53u0300u2013u032Eu208Du203Fu0311u0323u035Eu031Cu02FCu030Cu02F9u0328u032D:u02F4u032Fu0330u035Cu0302u0327u03572u0308u0351u0304u02F2u0352u0355u00B7u032Cu030Bu2019u0339u00B4u0301u02F1u0303u0306u030A7u0325u0307u0354`u02F0]+|w|W)', re.UNICODE | re.IGNORECASE)
如果你遗漏了一些重音符号,请将它们添加到图案中。
然后,您可以按如下方式将单词拆分为字符。
print(list(pattern.findall('šnjiwgetit')))
['š', 'n', 'j', 'i', 'w', 'g', 'e', 't', 'i', 't'
print(list(pattern.findall('h̭ɛ̮ŋkkɐᴅ')))
['h̭', 'ɛ̮', 'ŋ', 'k', 'k', 'ɐ', 'ᴅ']
如果您使用的是Python2,请在文件的开头添加from __future__ import unicode_literals
。