拆分没有正则表达式的unicode字符串

时间:2014-01-26 14:07:34

标签: string python-2.7 unicode

我正在尝试将Unicode字符串拆分为所有可能的拆分

此代码将提供所有字符排列 英文字符串,但不是unicode

def allperm(inputstr):
        for i in range(len(inputstr)):
            yield(inputstr[i])        
            for s in allperm(inputstr[:i] + inputstr[i+1:]):
                yield(inputstr[i] + s)

例如,

സമരക്കാര്‍ക്കാരുടെ 
സമ #രക്കാര്‍ക്കാരുടെ 
സമര#ക്കാര്‍ക്കാരുടെ 
സമരക്കാ#ര്‍ക്കാരുടെ 

例如英文

running can be sliced to

ru # nning
run #ning
runn#ing

此Unicode字符串需要以其所有字符组合进行切片

我知道string.split()import re

除了这两种方法之外,还有什么办法可以拆分吗?

1 个答案:

答案 0 :(得分:1)

您可以使用字节切片,例如

 a = "സമരക്കാര്‍ക്കാരുടെ".encode('utf-8')
 a
=> '\xc3\xa0\xc2\xb4\xc2\xb8\xc3\xa0\xc2\xb4\xc2\xae\xc3\xa0\xc2\xb4\xc2\xb0\xc3\xa0\xc2\xb4\xc2\x95\xc3\xa0\xc2\xb5\xc2\x8d\xc3\xa0\xc2\xb4\xc2\x95\xc3\xa0\xc2\xb4\xc2\xbe\xc3\xa0\xc2\xb4\xc2\xb0\xc3\xa0\xc2\xb5\xc2\x8d\xc3\xa2\xc2\x80\xc2\x8d\xc3\xa0\xc2\xb4\xc2\x95\xc3\xa0\xc2\xb5\xc2\x8d\xc3\xa0\xc2\xb4\xc2\x95\xc3\xa0\xc2\xb4\xc2\xbe\xc3\xa0\xc2\xb4\xc2\xb0\xc3\xa0\xc2\xb5\xc2\x81\xc3\xa0\xc2\xb4\xc2\x9f\xc3\xa0\xc2\xb5\xc2\x86' 
 a[:2]
=> '\cx3\xa0'
 a[2:4]
=> '\xc2\xb4'

还建议阅读:http://docs.python.org/release/3.2/howto/unicode.html