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

Ali*_*Ali 3 python string split non-english

我想将字符串拆分"hi????ali???"["hi", "????", "ali", "???"]

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

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

Mar*_*ers 5

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

re.split(r'([a-zA-Z]+)', inputstring)
Run Code Online (Sandbox Code Playgroud)

使用Python 3进行演示:

>>> inputstring = "hi????ali???"
>>> re.split(r'([a-zA-Z]+)', inputstring)
['', 'hi', '????', 'ali', '???']
Run Code Online (Sandbox Code Playgroud)

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

re.split(r'([a-zA-Z\xC0-\xFF]+)', inputstring)
Run Code Online (Sandbox Code Playgroud)

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

re.split(ur'([a-zA-Z\xC0-\xFF]+)', inputstring)
Run Code Online (Sandbox Code Playgroud)

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

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