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



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

iSD08LXjpg2021330401PM大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠
日本與美國比還是很不錯的USA死亡才多呢日媒體報道jpg2021321056PM

理想的结果是:

大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠
日本與美國比還是很不錯的USA死亡才多呢日媒體報道

但是我不知道如何使用re来删除它。

您想要删除所有以PM结尾的罗马字母加阿拉伯数字的连续片段。这可以通过一个简单的正则表达式来实现:

[a-zA-Z0-9]*PM

a-z表示所有小写拉丁字母的范围,等价于A-Z0-9*表示任意数量的字符,因为您的字符串可能具有任意长度。PM为固定结束字符串。

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

实际的python代码应该是

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

使用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死亡才多呢日媒體報道'

最新更新