繁体   English   中英

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

Remove characters after three consecutive capital letters

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我试图删除 3 个连续大写字母后的所有字符,例如:Crowd_Cheer_Large_Football_Game_Applause_OCP-0098-14.wav

Explosion_Artillery_DET-0020-256_Stereo.wav

应该变成:

Crowd_Cheer_Large_Football_Game_Applause_OCP

爆炸_火炮_DET

在 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)

但显然我不能像那样使用 (?<= ... ) 所以我不知道该怎么做!

谢谢 !

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:])

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题
 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM