当前位置: 首页 > news >正文

Python 的 re.split()

文章目录

      • 栗子:
      • 关键点:
      • 进阶用法:
      • 对比普通 `split()`:
      • 典型应用场景:

如何使用 Python 的 re.split() 方法通过正则表达式分割字符串。

栗子:

import re
s = "apple123banana456orange"
print(re.split(r"\d+", s))   # 输出: ['apple', 'banana', 'orange']
  1. import re
    导入 Python 的正则表达式模块。

  2. s = "apple123banana456orange"
    定义了一个包含字母和数字的字符串。

  3. re.split(r"\d+", s)

    • r"\d+" 是一个正则表达式:
      • \d 匹配任意数字(等价于 [0-9]
      • + 表示匹配前面的模式 1 次或多次
      • r 前缀表示原始字符串(防止转义字符干扰)
    • 这个正则表达式会匹配一个或多个连续的数字
  4. 分割结果
    字符串会在所有连续数字的位置被分割,生成一个列表:

    • "apple123banana456orange" → 在 123456 处分割
    • 结果:['apple', 'banana', 'orange']

关键点:

  • 数字被完全移除:所有匹配 \d+ 的部分都不会出现在结果中
  • 连续匹配:如果字符串以数字开头或结尾,结果中会有空字符串:
    s = "123apple456banana789"
    print(re.split(r"\d+", s))  # 输出: ['', 'apple', 'banana', '']
    

进阶用法:

  1. 保留分隔符
    如果想保留数字作为单独列表项:

    print(re.split(r"(\d+)", s))  # 输出: ['apple', '123', 'banana', '456', 'orange']
    
  2. 更复杂的分隔符
    匹配多种分隔符(如数字和特殊符号):

    s = "apple,123;banana?456!orange"
    print(re.split(r"[\d,;?!]+", s))  # 输出: ['apple', 'banana', 'orange']
    
  3. 限制分割次数
    通过 maxsplit 参数:

    print(re.split(r"\d+", s, maxsplit=1))  # 输出: ['apple', 'banana456orange']
    

对比普通 split()

方法分隔符类型功能复杂度性能
str.split()固定字符串简单更快
re.split()正则表达式模式复杂(支持模式匹配)较慢

典型应用场景:

  • 解析日志文件(如分割 "ERROR 2023-01-01: Something failed"
  • 处理混合格式数据(如 "Alice25Bob30Charlie"
  • 清理非结构化文本中的数字/符号

如果需要处理更复杂的分割逻辑,正则表达式会非常有用的。

相关文章:

  • 十二、C++速通秘籍—静态库,动态库
  • HBuilder创建项目步骤
  • 虎跃办公AI:重构智能办公的「模型交响乐团」
  • conda如何安装和运行jupyter
  • ViT-Adapter
  • LVS+Keepalived+DNS 高可用项目
  • L36.【LeetCode题解】查找总价格为目标值的两个商品(剑指offer:和为s的两个数字) (双指针思想,内含详细的优化过程)
  • 【第三章】14-常用模块2-ngx_http_proxy_module
  • 【场景应用5】深入探讨去噪扩散概率模型及训练推理过程
  • 电路方案分析(二十)TPS63xxx系列DC/DC电源EMI PCB设计方案
  • Odoo 部署本地 把現時的excel計算表格部署上odoo 教程
  • 利用 pyecharts 实现地图的数据可视化——第七次人口普查数据的2d、3d展示(关键词:2d 、3d 、map、 geo、涟漪点)
  • 基于Yolov8的植物病虫害检测系统
  • Linux线程属性与多线程开发:API详解与实战代码解析
  • 【一起来学kubernetes】37、lstio使用详解
  • 【前端】webpack一本通
  • HTML入门—表格与表单设计
  • 十大PDF解析工具在不同文档类别中的比较研究
  • HTTP 协议-应用层
  • STM32蓝牙连接Android实现云端数据通信(电机控制-开源)
  • html怎么做静态网站/学seo网络推广
  • 网页链接的视频怎么下载/建站seo推广
  • 装修网站建设方案书/长春免费网上推广
  • 会员系统网站制作/网络营销的方法
  • 美女做那种视频网站有哪些/中国舆情在线
  • 建设了网站怎么管理/沐浴露营销软文