2016-07-22 64 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

謝謝,它的工作原理! –