You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用re.sub()去除字符串中不需要的内容?

如何用Python的re.sub()去除字符串中不需要的内容

没问题,我来给你讲清楚怎么用Python的re.sub()清理字符串里不需要的内容,结合你给的示例数据一步步来~

先搞懂re.sub()的基础用法

re.sub()是Python正则表达式模块里的核心替换函数,要是把替换内容设为空字符串"",就相当于直接删除匹配到的内容。它的基本语法很简单:

re.sub(pattern, replacement, original_string)
  • pattern:正则表达式,用来描述你要匹配/删除的内容格式
  • replacement:替换后的内容(要删除就填"")
  • original_string:你要处理的原字符串

针对你的示例数据实战

先把你给的示例里的关键字符串拎出来,比如那个title字段:

Basket US - NBA - Matchs - Sacramento Kings // Golden State Warriors - 1 avril 2018 - 4h10

下面针对几种常见需求给出处理方案:

需求1:只保留球队名称,删除前缀分类和后缀日期时间

如果你只想留下两支球队的名字,我们可以写正则匹配开头的前缀和结尾的日期部分,然后替换成空:

import re

title = "Basket US - NBA - Matchs - Sacramento Kings // Golden State Warriors - 1 avril 2018 - 4h10"
# 匹配开头的前缀 ^Basket US - NBA - Matchs - ,或者结尾的日期部分 - \d+ .*$
clean_title = re.sub(r'^Basket US - NBA - Matchs - | - \d+ .*$', '', title)
print(clean_title)
# 输出: Sacramento Kings // Golden State Warriors

这里正则里的^表示字符串开头,$表示结尾,|表示“或”的逻辑,.*表示匹配任意字符(直到字符串结束)。

需求2:把分隔符//换成更友好的vs

如果还要优化球队名称的分隔方式,可以接着替换:

clean_title_vs = re.sub(r'//', 'vs', clean_title)
print(clean_title_vs)
# 输出: Sacramento Kings vs Golden State Warriors

需求3:删除所有特殊符号(只保留字母、数字和空格)

如果想去掉所有非文字数字的符号,用[^a-zA-Z0-9\s]匹配所有不在这个范围内的字符,然后替换为空:

clean_all_special = re.sub(r'[^a-zA-Z0-9\s]', '', title)
print(clean_all_special)
# 输出: Basket US  NBA  Matchs  Sacramento Kings  Golden State Warriors  1 avril 2018  4h10

处理字典里的其他字段

比如你示例里的data-event_id字段是sacramento_kings__golden_state_warriors,想把双下划线换成空格:

var1 = {
    'data-event_id': 'sacramento_kings__golden_state_warriors',
    # 其他字段省略...
}
clean_event_id = re.sub(r'__', ' ', var1['data-event_id'])
print(clean_event_id)
# 输出: sacramento_kings golden_state_warriors

几个实用小技巧

  • 如果你不确定正则写得对不对,可以先单独打印匹配到的内容,确认后再替换成空;
  • 正则里的特殊字符(比如.、-、*)如果要匹配本身,需要加转义符\,比如匹配.要写\.;
  • 复杂的匹配可以用括号分组,比如(pattern1)(pattern2),替换时可以用\1引用第一个分组的内容。

内容的提问来源于stack exchange,提问作者Elsha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:33:25