我认为这是一项简单的任务,但我是正则表达式的新手,所以无法弄明白。我想过滤包含以下内容的列表:“ANY” - “ANY” - “ANY”
输入:
List1 = ["AB.22-01-01", "AB.33-01-44", "--4", "AA.44--05", "--"]
输出:
List2 = ["AB.22-01-01", "AB.33-01-44"]
每个项目都包含两个“ - ”,但我只想在“ - ”的每一边都有文字。
答案 0 :(得分:4)
使用re module:
尝试此操作import re
p = re.compile('^.+-.+-.+$')
l1 = ["AB.22-01-01", "AB.33-01-44", "--4", "AA.44--05", "--"]
l2 = [ s for s in l1 if p.match(s) ]
答案 1 :(得分:1)
您可以使用正则表达式。它将返回不包含--
>>> import re
>>> pat = re.compile(r'^((?!--).)*$')
>>> [i for i in List1 if pat.match(i)]
['AB.22-01-01', 'AB.33-01-44']