gpt4 book ai didi

Python正则表达式去除所有方括号及其内容

转载 作者:太空狗 更新时间:2023-10-29 22:18:06 26 4
gpt4 key购买 nike

我正在尝试使用此正则表达式从字符串中删除方括号(以及其中的所有内容)的所有实例。例如,当字符串中只有一对方括号时,这会起作用:

import re
pattern = r'\[[^()]*\]'
s = """Issachar is a rawboned[a] donkey lying down among the sheep pens."""
t = re.sub(pattern, '', s)
print t

我得到的是正确的:

>>>Issachar is a rawboned donkey lying down among the sheep pens.

但是,如果我的字符串包含一组以上的方括号,它就不起作用。例如:

s = """Issachar is a rawboned[a] donkey lying down among the sheep pens.[b]"""

我得到:

>>>Issachar is a rawboned

无论字符串中有多少个方括号,我都需要正则表达式起作用。正确答案应该是:

>>>Issachar is a rawboned donkey lying down among the sheep pens.

我研究并尝试了很多排列,但都无济于事。

最佳答案

默认*(或+)贪婪匹配,因此问题中给出的模式将匹配到最后一个]

>>> re.findall(r'\[[^()]*\]', "Issachar is a rawboned[a] donkey lying down among the sheep pens.[b]")
['[a] donkey lying down among the sheep pens.[b]']

通过在重复运算符(*)后附加?,可以使其匹配非贪婪方式。

>>> import re
>>> pattern = r'\[.*?\]'
>>> s = """Issachar is a rawboned[a] donkey lying down among the sheep pens.[b]"""
>>> re.sub(pattern, '', s)
'Issachar is a rawboned donkey lying down among the sheep pens.'

关于Python正则表达式去除所有方括号及其内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42324466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com