3 回答

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個(gè)贊
如果始終只有一個(gè)中文文本跨度,您可以只在第一個(gè)空格處拆分:
s.split(' ', 1)
如果中文文本中可能有空格,您可以查找第一個(gè)不是空格的 ASCII 字符:
for ii, ch in enumerate(s):
if not ch.isspace() and ch.isascii():
break
當(dāng)該循環(huán)完成時(shí),它會(huì)將iiset 保留為第一個(gè)非空格的 ASCII 字符的索引。你可以把它變成一個(gè)像這樣的函數(shù)并像這樣進(jìn)行拆分:
def split_ascii(s):
for ii, ch in enumerate(s):
if not ch.isspace() and ch.isascii():
break
return s[:ii].rstrip(), s[ii:]

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
您也可以嘗試正則表達(dá)式:
import re
s = '人均收入 Per capital Income'
result = re.match(r"([\u4e00-\u9fa5]*)([A-Za-z\s]*)", s)
print(result.group(1)) # 人均收入
print(result.group(2)) # Per capital Income

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
對(duì)我來(lái)說(shuō)很難使用正則表達(dá)式。我更喜歡做這個(gè)選項(xiàng):
import string
i = 0
CHINESE = ''
ENGLISH = ''
while i < len('人均收入 Per capital Income'):
if '人均收入 Per capital Income'[i] in string.ascii_letters:
break
i += 1
CHINESE = '人均收入 Per capital Income'[:i-1]
ENGLISH = '人均收入 Per capital Income'[i:]
添加回答
舉報(bào)