python - 如何使用 python 删除包含特定模式的列表的元素?

标签 python arrays regex list

给定一个字符串列表

listA=['a', 'b', 'a@b=c', 'a @ b = c', 'a@ =b', 'a@=b' 'a=b@c', 'a@b' ]
                   ^         ^

我们要去掉标有“^”的元素,得到

ListB=['a', 'b', 'a@ =b', 'a@=b' 'a=b@c', 'a@b']

这里我们删除了所有包含“@”的元素,后跟一些字符,然后是“=”,但忽略了“@=”或“@=”

如何为 python 列表做这样的正则表达式匹配?

编辑:

我知道如果我们知道要删除的元素的特定索引,我们可以使用 numpy.delete(list, index) 来删除它。但在这种情况下并非如此。

最佳答案

可以使用 re 在 python 中进行正则表达式搜索。模块;具体来说,re.search('@\w=', my_string)不会是None如果my_string包含 @和一个 =\w的成员分开,即一个单词字符(字母数字和 _ )。

我使用 \s 将其扩展到包括也有空格的情况.

import re

listA = ['a', 'b', 'a@b=c', 'a @ b = c', 'a@ =b', 'a@=b' 'a=b@c', 'a@b' ]
listB = [a for a in listA if not re.search('@\s*\w+\s*=', a)]

更新:上面的解决方案现在使用 \w+匹配多个单词字符而不是一个。

关于python - 如何使用 python 删除包含特定模式的列表的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383841/

相关文章:

python - 为椭圆体内的 3D 数组中的点赋值

python - 将python正则表达式代码拆分为多行

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

.NET File.WriteAllLines 在文件末尾留下空行

python - 在连字符后跟数字之前使用正则表达式提取字符串的一部分

python - Pandas str.contains 用于部分字符串的精确匹配

python - 查找产品时出现 Amazon Simple Product API 错误

python - Python init 方法中的模拟函数调用

javascript - 为返回 promise 数组的 Array.map 调用添加毫秒延迟

python - Python 与 Perl 正则表达式中的反斜杠和转义字符