0

想知道是否可以通过此处显示的一些代码获得一些帮助:

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 个参数。任何帮助都会很棒!我希望我说得通,如果您需要更多信息,请询问。

4

1 回答 1

2

修正你的正则表达式来搜索所有这些,并告诉你数字:

corelist = [m.group(1) for m in
            re.finditer(r"\b([0-9]+)ProcessorsRequested\b", output)]
于 2012-07-02T15:25:30.943 回答