删除连续三个大写字母后的字符

2024-05-23 16:29:48 发布

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

我试图删除3个连续大写字母后的所有字符,例如: 人群欢呼大型足球比赛掌声OCP-0098-14.wav

爆炸炮DET-0020-256立体声.wav

应成为:

人群欢呼大型足球比赛掌声OCP

爆炸(炮兵)

在Python中,我尝试过:

import re
import string

text1 = 'Crowd_Cheer_Large_Football_Game_Applause_OCP-0098-14.wav'
text2 = 'Explosion_Artillery_DET-0020-256_Stereo.wav'
text1 = re.sub((?<='[A-Z]{3}'), '', text1)
text2 = re.sub((?<='[A-Z]{3}'), '', text2)
print (text1)
print (text2)

但显然我不能那样使用(?<;=…),所以我不知道怎么做

谢谢


Tags: importrestring大写字母字符printocpdet
2条回答

可以通过以下方式使用re.sub()

text1 = re.sub(r'([A-Z]{3}).*', '\\1', text1)
text2 = re.sub(r'([A-Z]{3}).*', '\\1', text2)

我们正在匹配来自并包括3个大写字母的子字符串,并用相同的3个大写字母替换它们

请试试这个。希望这有帮助

import re

text1 = 'Crowd_Cheer_Large_Football_Game_Applause_OCP-0098-14.wav'
text2 = 'Explosion_Artillery_DET-0020-256_Stereo.wav'

x = re.search('([A-Z]){3}',text1)
y = re.search('([A-Z]){3}',text2)

index = x.start() + 3
print(text1[:index:])

index = y.start() + 3
print(text2[:index:])

相关问题 更多 >