如何使用python拆分字符串中的中文单词和英文单词?

例如,我有一些字符串如下所示:

'人均收入 Per capital Income',

'总产值 Gross Output Value'.

我想把它们分成

'人均收入' 'Per capital Income'

'总产值' 'Gross Output Value'

汉字总是在英文单词之前。


达令说
浏览 187回答 3
3回答

牛魔王的故事

如果始终只有一个中文文本跨度,您可以只在第一个空格处拆分:s.split(' ', 1)如果中文文本中可能有空格,您可以查找第一个不是空格的 ASCII 字符:for ii, ch in enumerate(s):     if not ch.isspace() and ch.isascii():        break当该循环完成时,它会将iiset 保留为第一个非空格的 ASCII 字符的索引。你可以把它变成一个像这样的函数并像这样进行拆分:def split_ascii(s):     for ii, ch in enumerate(s):         if not ch.isspace() and ch.isascii():             break     return s[:ii].rstrip(), s[ii:]

MM们

您也可以尝试正则表达式:import res = '人均收入 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 

暮色呼如

对我来说很难使用正则表达式。我更喜欢做这个选项:import stringi = 0CHINESE = ''ENGLISH = ''while i < len('人均收入 Per capital Income'):&nbsp; if '人均收入 Per capital Income'[i] in string.ascii_letters:&nbsp; &nbsp; break&nbsp; i += 1CHINESE = '人均收入 Per capital Income'[:i-1]ENGLISH = '人均收入 Per capital Income'[i:]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python