是否有Python函数来删除文本中的字符?

2024-06-12 14:47:22 发布

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

我有一个文本,它有一个开括号和一个闭括号,在这个文本中有一个括号是开的,不是关的,是开的,但不是关的,所以我需要删除它,是开的,不是关的,是开的,但不是关的,用“!“错误”。我该怎么办???你知道吗

Text_To_Correct = """Lorem ipsum dolor sit amet, (consectetur) adipiscing elit. Nunc) fringilla metus eget) elit tristique (dignissim.
                     Mauris id nisi (et tortor fringilla tincidunt) sed sit amet elit. Aliquam feugiat velit sollicitudin, tempor velit et,
                     maximus sem. Etiam (varius tincidunt est. Proin (mattis convallis) tincidunt phasellus euismod tortor eget
                     vestibulum sollicitudin, mi lorem eleifend libero, non consequat sem velit in elit. Ut nisi felis, lacinia nec elit
                     non, lacinia rutrum urna. Quisque (vitae sagittis) diam, ut lobortis nisi. Maecenas id massa velit phasellus et
                     massa laoreet, maximus diam aliquam, ) accumsan elit."""


Remove_Close_Parenthesis= Text_To_Correct.replace(")", " !error ")

Remove_Open_Parenthesis= Remove_Close_Parenthesis.replace("(","!error")



print(Remove_Open_Parenthesis)

我发现所有的括号都去掉了。你知道吗


Tags: totext文本removeet括号ametsit
1条回答
网友
1楼 · 发布于 2024-06-12 14:47:22

将正确的()对替换为[](任何分隔符),并保留为!错误并撤消第一步

r=Text_To_Correct
r= re.sub(r'\(([^()]*?)\)',r'[\1]',r)
r= re.sub(r'\(|\)',r'!error',r)
r= re.sub(r'\[([^\[\]]*?)\]',r'(\1)',r)

对于嵌套()

r=Text_To_Correct
pattern=r'\(([^()]*?)\)'
while re.search(pattern,r):
    r= re.sub(pattern,r'[\1]',r)
r= re.sub(r'\(|\)',r'!error',r)
pattern2=r'\[([^\[\]]*?)\]'
while re.search(pattern2,r):
    r= re.sub(pattern2,r'(\1)',r)

相关问题 更多 >