【发布时间】:2015-06-16 17:22:20
【问题描述】:
我有一个列表,我尝试使用循环删除特殊字符。当我尝试在没有循环的情况下删除那些特殊字符时,它起作用了。但是循环不起作用,但确实运行了(我不知道如何)。这些特殊字符是:“[”和“]”。这可能是非常简单的事情,或者是列表的理解,我尝试了一些但不太奏效(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))
【问题讨论】:
-
在循环外抓取匹配组,但在循环内替换匹配组。
-
你到底想做什么?是否要提取列表项?
-
匹配括号内的内容与剥离括号不同。
"[1,2,3 [] 4, 5]"之类的内容应该是"1,2,3,4,5"还是错误? -
好吧,我想去掉括号,但保留值
标签: python regex python-3.x