2012-07-02 212 views
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個參數正則表達式部分。任何幫助將是偉大的!我希望我有道理,如果你需要更多的信息,那麼請問。

回答

2

解決您的正則表達式來搜索所有的人,並告訴你號碼:

corelist = [m.group(1) for m in 
      re.finditer(r"\b([0-9]+)ProcessorsRequested\b", output)] 
+3

如果是這樣'm.group(1)'? – mgilson