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

如何使用Python re库删除以字母或数字开头且以"PM"结尾的子串

用Python re库删除指定格式乱码的实现方法

实现逻辑

  • 目标乱码符合「以英文字母/数字开头、以PM结尾」的特征,使用非贪婪匹配规则避免误吞正常内容。
  • 直接调用re.sub方法将匹配到的乱码子串替换为空字符串即可完成清理。

正则表达式说明

使用的正则规则为 r'[a-zA-Z0-9].*?PM',各部分含义:

  • [a-zA-Z0-9]:匹配任意大小写英文字母或阿拉伯数字,对应乱码的起始特征
  • .*?:非贪婪匹配任意数量的字符(默认不匹配换行符),确保匹配到最近的一个PM就停止,不会过度匹配
  • PM:匹配乱码的固定结尾标识

完整代码示例

import re

def remove_pm_garbage(text: str) -> str:
    pattern = re.compile(r'[a-zA-Z0-9].*?PM')
    return pattern.sub('', text)

# 测试用例
raw_text = """iSD08LXjpg2021330401PM大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠

日本與美國比還是很不錯的USA死亡才多呢日媒體報道jpg2021321056PM"""

processed_text = remove_pm_garbage(raw_text)
print(processed_text)

补充说明

如果你的乱码存在跨换行的场景,可以在编译正则时添加re.DOTALL参数,修改为:
pattern = re.compile(r'[a-zA-Z0-9].*?PM', re.DOTALL)
此时.会匹配换行符,可处理跨多行的乱码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:21:03