需要正则表达式来删除括号[关闭]
Posted
技术标签:
【中文标题】需要正则表达式来删除括号[关闭]【英文标题】:need regular expression to remove brackets [closed] 【发布时间】:2016-11-26 12:36:37 【问题描述】:我是python的新手。我有一个数组[' [59342486', '59343079]']
。我想
编写一个去掉括号内的正则表达式
' [59342486'
'59343079]'
你能帮我解决这个问题吗?
提前致谢 让
【问题讨论】:
您不需要正则表达式。只需使用字符串replace()
方法。
另外,正则表达式不会删除括号。它将帮助您找到要删除的括号。
你从哪里得到这个奇怪的列表?构建此列表的代码可能需要修复,可能通过使用 ast.literal_eval
或避免在此处之前的某个时间点转换为字符串。
【参考方案1】:
new_list = [s.replace('[','').replace(']','') for s in old_list]
如果您想删除前导和尾随空格:
new_list = [s.replace('[','').replace(']','').strip() for s in old_list]
你也可以原地做:
old_list[:] = [s.replace('[','').replace(']','') for s in old_list]
【讨论】:
这很好,OP 没有要求它,但它在列表的第一项中留下了前导空格。我猜这可能会在以后引起问题,所以可能将.strip()
链接到表达式【参考方案2】:
您可以为此使用replace
:
for index, item in enumerate(my_list):
my_list[index] = item.replace('[', '').replace(']', '')
【讨论】:
其实while
和if
都不需要。默认情况下,replace
替换所需字符的每个实例。问题是它没有到位,因此您的示例无法按预期工作。
您不需要while
循环。 replace()
方法将删除所有出现的子字符串。以上是关于需要正则表达式来删除括号[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
怎么通过正则表达删除含中文的括号部分但保留含英文的括号部分?