我不知道这有什么问题。我有一个项目清单:
int=['xe-0/1/1', 'xe-0/1/2', 'xe-0/1/3', 'xe-0/2/2', 'xe-0/2/3', 'xe-0/3/1', 'xe-1/0/2', 'xe-1/0/3', 'xe-1/1/1', 'xe-1/1/2', 'xe-1/2/2', 'xe-1/2/3', 'xe-1/3/1', 'xe-1/3/2', 'xe-2/0/2', 'xe-2/0/3', 'xe-2/1/1', 'xe-2/1/2', 'xe-2/1/3', 'xe-2/2/2', 'xe-2/2/3', 'xe-2/3/1', 'xe-2/3/2', 'xe-3/0/2', 'xe-3/0/3', 'xe-3/1/2', 'xe-3/1/3', 'xe-3/2/1', 'xe-3/2/2', 'xe-3/2/3', 'xe-3/3/2', 'xe-4/0/2', 'xe-4/0/3', 'xe-4/1/2', 'xe-4/1/3', 'xe-4/2/2', 'xe-4/2/3', 'xe-4/3/2', 'xe-4/3/3', 'xe-7/3/3', 'xe-8/0/7', 'xe-8/3/6', 'xe-8/3/7', 'xe-9/0/5', 'xe-9/0/6', 'xe-9/0/7', 'xe-9/1/5', 'xe-9/1/6', 'xe-10/0/4', 'xe-10/0/6', 'xe-10/0/7', 'xe-10/1/6', 'xe-10/2/4', 'xe-10/2/6', 'xe-10/2/7', 'xe-10/3/7', 'xe-11/0/6', 'xe-11/0/7', 'xe-11/1/6', 'xe-11/1/7', 'xe-11/2/6', 'xe-11/2/7', 'xe-11/3/6', 'xe-11/3/7']
我希望迭代此列表并获得两个新列表,其中仅包含我在正则表达式中定义的匹配项。
for i in range(2):
regex="xe-%s/1/*" %i
print regex
[x for x in int if re.match(r'regex',x)]
结果:
xe-0/1 / * [] xe-1/1 / * []
但似乎不起作用。
答案 0 :(得分:1)
我相信您希望表达式存储在regex
中,而不是字符串“regex”:
regex="xe-%s/1/*" %i
[x for x in numbers if re.match(regex,x)]
请注意,变量名int
必须更改为其他内容,在本例中为numbers
,因为int
是内置函数,并且在代码为时会抛出错误运行