我试图打印出一个文件的内容(一个电影脚本),但删除了括号或括号之间的所有内容(包括括号和括号本身)。
这是我到目前为止所知道的:
import re
file = open('filename','r', encoding="utf-8", errors='ignore')
newfile = file.read()
test = re.sub(r'\([^()]*\)', '', output)
它似乎删除了括号中包含的所有内容,但没有删除括号中的内容。有什么帮助吗?
发布于 2017-09-21 19:22:10
您只需稍微修改一下您的正则表达式。您没有做任何包含括号的事情,我假设您指的是[
和]
。您可以看到,当前正则表达式中的括号用于匹配其中的每一个内容。^
实际上意味着与这些不匹配。你的程序应该看起来像这样:
import re
with open('filename') as f:
newfile = f.read()
test = re.sub(r'[\(\[].*[\)\]]', '', newfile)
发布于 2017-09-21 19:23:53
不使用正则表达式:
newfile = '''teceft\n frhbfhr(jnjf(frfjrf)vrfhfr)fjnrf\nfrjkerjk(fewnjrfn)ebhjfbwrf\nrbhfhw[fhbewhf]fewhf\n'''
pas = False
count = 0
output = []
for elem in newfile:
if elem in ("(","["):
count += 1
pas = True
elif elem in (")","]"):
count -= 1
if count == 0: pas = False
elif not pas:
output.append(elem)
output = "".join(output)
print (output)
输出:
teceft
frhbfhrfjnrf
frjkerjkebhjfbwrf
rbhfhwfewhf
https://stackoverflow.com/questions/46351352
复制相似问题