python-3.x 我如何删除字符串中两个不同字符之间的字符

fhg3lkii  于 2022-11-26  发布在  Python
关注(0)|答案(2)|浏览(186)

所以我在一个文本文件里有这个:
"00:00:25,58 --> 00:00:27,91 (DRAMATIC MUSIC PLAYING)"
我想删除括号内的字符,包括括号本身,因此:
"00:00:25,58 --> 00:00:27,91 "

eng_sub = open(text).read()
eng_sub2 = re.sub("\(", "", eng_sub)
new_eng_sub = re.sub("\)", "", eng_sub2)

open(text, "w").write(new_eng_sub)

我试过使用sub(),它删除了一个字符,但我真正想做的是操作这两个字符之间的字符(即“(“,“)”)。
我不知道怎么做。谢谢你的帮助。

cxfofazt

cxfofazt1#

您可以尝试匹配模式\(.*?\)

eng_sub = open(text).read()
eng_sub2 = re.sub(r'\(.*?\)', '', eng_sub)

open(text, "w").write(eng_sub2)
nimxete2

nimxete22#

实际上,你不能使用“sub”方法,因为它只会删除模式,但是你可以使用“findall”(也存在于re库中),它允许你从STR中提取模式。下面是一个简单的例子:

import re
text = "00:00:25,58 --> 00:00:27,91 (DRAMATIC MUSIC PLAYING)"
print(re.findall(r"\(.*\)", text)[0])

输出:(DRAMATIC MUSIC PLAYING)
一旦你提取了你想要操作的东西,你可以通过子

print(re.sub(r"\(.*\)", '', text))

相关问题