想知道我是否可以通过我在这里展示的一些代码得到一些帮助:
if re.search(r"\b2ProcessorsRequested\b", output):
corelist.append("2")
elif re.search(r"\b4ProcessorsRequested\b", output):
corelist.append("4")
elif re.search(r"\b8ProcessorsRequested\b", output):
corelist.append("8")
elif re.search(r"\b16ProcessorsRequested\b", output):
corelist.append("16")
elif re.search(r"\b32ProcessorsRequested\b", output):
corelist.append("32")
elif re.search(r"\b64ProcessorsRequested\b", output):
corelist.append("64")
elif re.search(r"\b128ProcessorsRequested\b", output):
corelist.append("128")
elif re.search(r"\b256ProcessorsRequested\b", output):
corelist.append("256")
elif re.search(r"\b512ProcessorsRequested\b", output):
corelist.append("512")
elif re.search(r"\b1024ProcessorsRequested\b", output):
corelist.append("1024")
else:
corelist.append("1")
这段代码的问题显然很多都是重复的,这也意味着我只能搜索一组核心列表(1,2,4等)。我如何转换此代码,以便它只是从1-1024循环?我认为这有点像这样:
x=0
while x < 1025:
if re.search(r"\b", x, "ProcessorsRequested\b", output):
corelist.append(x)
break()
x+=1
但我认为语法错误,因为它说(不记得确切的措辞)我无法在正则表达式部分传递超过3个参数。任何帮助都会很棒!我希望我有道理,如果您需要更多信息,请询问。
答案 0 :(得分:2)
修复正则表达式以搜索所有这些,并告诉您数字:
corelist = [m.group(1) for m in
re.finditer(r"\b([0-9]+)ProcessorsRequested\b", output)]