如何使用Python re删除以字母或数字开头并以“PM”结尾的所有子字符串

2024-09-30 14:36:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我在我的文本文件中发现了一些由图像文件引起的随机代码,我想删除这些以字母或数字开头但以“PM”结尾的随机代码: 例如,有一个文本:

iSD08LXjpg2021330401PM大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠

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

理想的结果是:

大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠

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

但我不知道如何使用re来移除它


Tags: 代码文本图像文件结尾字母数字老鼠文本文件
2条回答

使用re.sub删除字符串开头或结尾的所有ascii(ord 0-127)字符

import re

s1 = 'iSD08LXjpg2021330401PM大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠'
s2 = '日本與美國比還是很不錯的USA死亡才多呢日媒體報道jpg2021321056PM'
>>> re.sub(r'^[\x00-\x7F]+|[\x00-\x7F]+$', '', s1)
'大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠'

>>> re.sub(r'^[\x00-\x7F]+|[\x00-\x7F]+$', '', s2)
'日本與美國比還是很不錯的USA死亡才多呢日媒體報道'

您希望删除以PM结尾的罗马字母和阿拉伯数字的每个连续段。这是通过一个简单的正则表达式实现的:

[a-zA-Z0-9]*PM

a-z描述所有小写拉丁字母的范围,相当于A-Z0-9*表示任意数量的字符,因为字符串可能具有任意长度PM是固定端字符串

当然,您必须确保这些字符串不包含像ü这样的特殊字符。如果有,请根据需要添加字符组

实际的python代码将是

    re.sub(r'[a-zA-Z0-9]*PM',"",inputtext)

相关问题 更多 >