python将字符串拆分为具有相同语言字符的字符串

时间:2014-08-06 08:09:42

标签: python string split non-english

我希望将"hiسلامaliعلی"等分割字符串转换为["hi", "سلام", "ali", "علی"]

初始字符串仅包含英文和波斯字符(有或没有空格),我想将其拆分为连续的相同语言字符。

有没有一种简单的方法可以从字符串中提取连续的英文字符并拆分重新制作字符?

1 个答案:

答案 0 :(得分:4)

您可以使用re.split()分割ASCII字母:

re.split(r'([a-zA-Z]+)', inputstring)

使用Python 3进行演示:

>>> inputstring = "hiسلامaliعلی"
>>> re.split(r'([a-zA-Z]+)', inputstring)
['', 'hi', 'سلام', 'ali', 'علی']

将其扩展到完整的Latin-1范围:

re.split(r'([a-zA-Z\xC0-\xFF]+)', inputstring)

对于Python 2,请确保使用unicode字符串并在正则表达式前加上u

re.split(ur'([a-zA-Z\xC0-\xFF]+)', inputstring)

在所有情况下,如果拉丁文本位于开头或结尾,则在分割字符串时插入空字符串;你可以用以下方法删除它们:

result = [s for s in re.split(r'([a-zA-Z\xC0-\xFF]+)', inputstring) if s]