Python使用re正则表达式分割中英文混合字符串

咖啡半糖
咖啡半糖
发布时间:2026-10-11| 3人浏览过
原创

本文介绍如何利用Python的re模块正则表达式,精准分割包含中英文、数字及标点符号的混合字符串。通过定义特定的Unicode范围匹配中文与英文单词,实现按字或按词拆分,并提供完整代码示例与结果分析。

核心原理:利用Unicode范围匹配

在Python中处理中英文混合文本时,核心在于利用正则表达式识别不同字符的Unicode编码范围。以下是常用的匹配规则:

  • \u4e00-\u9fa5:匹配所有中文字符。
  • \u0030-\u0039:匹配数字。
  • \u0041-\u5a:匹配大写字母。
  • \u0061-\u007a:匹配小写字母。

基础示例:提取中英文

若目标是将字符串中的中文和英文分别提取出来,可以使用 re.findall() 函数。该函数会返回所有匹配的子串列表。

import re 
s = 'alibaba阿里巴巴' # 待分割字符串
en_letter = '[\u0041-\u5a|\u0061-\u007a]+' # 大小写英文字母
zh_char = '[\u4e00-\u9fa5]+' # 中文字符 

print(re.findall(zh_char,s) + re.findall(en_letter,s))

# 输出: ['阿里巴巴', 'alibaba']

上述代码首先匹配所有中文字符,再匹配所有英文单词,最后将两个列表合并。这种方法简单直接,适用于只需提取内容而无需保留标点符号的场景。

进阶处理:复杂混合字符串分割

在实际应用中,待切分的句子往往包含中英文、数字以及标点符号。我们需要一种更复杂的逻辑,使得中文按字断开,英文按单词分开,而数字和标点符号则作为分隔符处理。

实现步骤

  1. 定义正则规则:使用 re.compile() 编译正则表达式。这里使用 [\W]* 匹配除单词字符(字母、数字、下划线)和中文外的任意字符串,作为分割依据。
  2. 处理中文:针对中文部分,使用 r"([\u4e00-\u9fa5])" 进行匹配。注意,中文通常按字分割,因此需要将中文单字单独提取。
  3. 遍历与过滤:遍历分割后的结果,去除空字符串,最终得到纯净的词列表。

完整代码示例

import re
def get_word_list(s1):
  # 把句子按字分开,中文按字分,英文按单词,数字按空格
  regEx = re.compile('[\\W]*')  # 我们可以使用正则表达式来切分句子,切分的规则是除单词,数字外的任意字符串
  res = re.compile(r"([\u4e00-\u9fa5])")  # [\u4e00-\u9fa5]中文范围
  p1 = regEx.split(s1.lower())
  str1_list = []
  for str in p1:
    if res.split(str) == None:
      str1_list.append(str)
    else:
      ret = res.split(str)
      for ch in ret:
        str1_list.append(ch)
  list_word1 = [w for w in str1_list if len(w.strip()) > 0] # 去掉为空的字符
  return list_word1
if __name__ == '__main__':
  s = "12、China's Legend Holdings will split its several business arms to go public on stock markets, the group's president Zhu Linan said on Tuesday.该集团总裁朱利安周二表示,haha中国联想控股将分拆其多个业务部门在股市上市。"
  list_word1=get_word_list(s)
  print(list_word1)

结果分析

运行上述代码,处理包含中英文及标点符号的长句时,切分结果列表将包含数字、英文单词和单字。例如,输入字符串中的“China's”会被识别为英文单词,“中国”会被拆分为“中”和“国”,而标点符号如“、”和“。”则被过滤掉。这种方法能够灵活应对复杂的文本处理需求。

以上就是Python通过re正则表达式切割中英文混合字符串的详细内容,更多关于Python字符串处理与正则表达式应用资料请关注本站其它相关文章!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。