2016-07-22 43 views
-9

我是Python新手。我有一个数组[' [59342486', '59343079]']。我想 写一个正则表达式来摆脱里面的括号 ' [59342486' '59343079]'需要正则表达式去除括号

请问你能帮我一下吗?

在此先感谢 让

+7

您不需要正则表达式。只需使用字符串'replace()'方法即可。 – martineau

+0

此外,正则表达式不会*删除括号。它会帮助你*找到要删除的括号。 – SilentMonk

+2

你甚至从哪里得到这个奇怪的列表?构建这个列表的代码可能需要修正,也许通过使用'ast.literal_eval'或避免在此之前的某个时间点转换为字符串。 – user2357112

回答

0

您可以使用replace此:

for index, item in enumerate(my_list): 
    my_list[index] = item.replace('[', '').replace(']', '') 
+1

实际上既不需要'while'也不需要'if'。默认情况下'replace'替换所需字符的每个实例。问题在于它不在原位,因此您的示例将无法按预期工作。 – DeepSpace

+0

你不需要'while'循环。 replace()方法将删除所有出现的子字符串。 – martineau

3
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] 
+1

这很好,OP没有要求它,但它留下了列表中第一项的领先空间。我猜测这可能会导致问题,所以也许连锁'.strip()'表达式 –

+0

谢谢,它的工作原理! –