我有一个列表,我尝试使用循环删除其中的特殊字符。当我试图在没有循环的情况下删除那些特殊字符时,它起作用了。但是循环不起作用,但确实运行了(我不知道如何运行)。这些特殊字符是:“[”和“]”。这可能是一些非常简单的东西或者列表的理解,我尝试了一些但不太奏效(How do you use a regex in a list comprehension in Python?)
你能帮忙吗?我是 Python 的新手,但它会很有帮助。请分享您的知识!
输出应该是:[ '1', '2' ]
我的代码:
import re
# Case 1 : Sub with no loop
w = '[ 1,2,3,4 ]'
outer= re.compile("\[(.+)\]")
m = outer.search(w)
inner_str = m.group(1)
# Case 2 - Sub with loop
x = [ '[1]', '[2]' ]
for item in x:
if item == re.match('\[(.+)\]', item):
print(re.sub("\[(.+)\]", "", item))
最佳答案
您可以使用列表推导来做到这一点,您是说这样的事情吗?
>>> import re
>>> x = [ '[1]', '[2]' ]
>>> [re.sub(r'\W', '', i) for i in x]
['1', '2']
token \W
匹配任何非单词字符。
关于python - 列表上的 re.sub - python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29570771/