3

我想像 into 那样拆分"hiسلامaliعلی"字符串["hi", "سلام", "ali", "علی"]

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

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

4

1 回答 1

5

您可以使用以下命令拆分 ASCII 字母re.split()

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]
于 2014-08-06T08:12:37.437 回答