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 に答える