Python中如何仅拆分一次实现中英文混合字符串分离?
解决Python字符串拆分问题
针对你给出的字符串,这里提供两种可靠的拆分方法:
方法一:正则表达式匹配
利用中文和英文的字符范围差异,通过正则分组捕获两部分内容:
import re string = '小西 - 杏花 Siu Sai - Heng Fa' # 匹配中文、空格、连字符组成的第一部分,以及英文、空格、连字符组成的第二部分 match_result = re.match(r'([\u4e00-\u9fa5\s-]+)\s([A-Za-z\s-]+)', string) if match_result: chinese_part = match_result.group(1).strip() english_part = match_result.group(2).strip() print(chinese_part) # 输出:小西 - 杏花 print(english_part) # 输出:Siu Sai - Heng Fa
方法二:遍历定位分界点
通过遍历字符串找到第一个英文字母的位置,以此确定拆分的分界空格:
string = '小西 - 杏花 Siu Sai - Heng Fa' split_position = None for idx, char in enumerate(string): # 找到第一个英文字符,其前一个位置就是分界空格 if char.isascii() and char.isalpha(): split_position = idx - 1 break if split_position is not None: chinese_part = string[:split_position].strip() english_part = string[split_position+1:].strip() print(chinese_part) print(english_part)
两种方法都能准确拆分出你需要的两部分内容,其中正则表达式方法更简洁,遍历法则无需依赖正则模块。
内容的提问来源于stack exchange,提问作者Winston
相关产品推荐
相关产品推荐

