python - 列表上的 re.sub - python 3

标签 python regex python-3.x

我有一个列表,我尝试使用循环删除其中的特殊字符。当我试图在没有循环的情况下删除那些特殊字符时,它起作用了。但是循环不起作用,但确实运行了(我不知道如何运行)。这些特殊字符是:“[”和“]”。这可能是一些非常简单的东西或者列表的理解,我尝试了一些但不太奏效(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/

相关文章:

python - Mac 上应该有多少个不同的 macOS 系统默认版本的 Python?

python - 更新字典的字典内的值

python - python中的服务器端SVG到PNG(或其他一些图像格式)

javascript - RegExp 中的别名 ls ="ls --color"?

javascript - 从 HTML 文件输出两个特定字段的值的最简单方法是什么?

javascript regex - 删除查询字符串变量(如果存在)

python - pyqt5 tabwidget 垂直制表符水平文本左对齐

python - 使用 pandas 使用现有数据框中的唯一元素生成随机数据框

python - 如何正确使用__setitem__?

python - 按组划分的 Pandas 时间累计和