我在我的文本文件中发现了一些由图像文件引起的随机代码,我想删除这些随机代码,这些代码以字母或数字开头,但以"PM"结尾:例如,有一个文本:
iSD08LXjpg2021330401PM大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠
日本與美國比還是很不錯的USA死亡才多呢日媒體報道jpg2021321056PM
理想的结果是:
大陸不可以給60歲以上人士打香港專找60歲以上人士去打,做白老鼠
日本與美國比還是很不錯的USA死亡才多呢日媒體報道
但是我不知道如何使用re来删除它。
您想要删除所有以PM结尾的罗马字母加阿拉伯数字的连续片段。这可以通过一个简单的正则表达式来实现:
[a-zA-Z0-9]*PM
a-z
表示所有小写拉丁字母的范围,等价于A-Z
和0-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死亡才多呢日媒體報道'