2015-04-24 38 views
-1
re.compile(regex1) 
r1=r.sub(something,text) 
re.compile(regex2) 
r2=r.sub(something,text) 
re.compile(regex3) 
r3=r.sub(something,text) 

所以我想改變一個文本基於三個正則表達式..但我不知道如何應用其中三個並重現它作爲一個整體。任何人都可以請幫助我如何去了解這個如何循環與正則表達式

+1

一個例子會更好。 –

+0

你想對你的字符串做什麼樣的改變?例如 – Kasramvd

+0

替換以第一種情況結尾的單詞:與環結合,第二種情況2:用環替換0:情況3:用環替換>。我想說的三種情況可能會有所不同,但它被替換的是相同的 – ananymous59

回答

0

如果你的正則表達式是相當簡單的,你可以只從幾個正則表達式創建一個脫節,並全部更換一次:

>>> text = "something with 0 and >" 
>>> re.sub(r"ing|0|>", "ring", text) 
'somethring with ring and ring' 

或者,你可以使用一個循環,或者一個接一個地替換它們,但要確保替換前一個替換結果中的文本,而不是原文中的文本!

即使用你的僞代碼,它應該是這樣的:

r = re.compile(regex1) 
r1 = r.sub(something, text) 
re.compile(regex2) 
r2 = r.sub(something, r1) # use r1 here 
re.compile(regex3) 
r3 = r.sub(something, r2) # and r2 here 

或者只分配回到原來的text變量:

for x in ["ing", "0", ">"]: 
    text = re.sub(x, "ring", text) 
print text 

(當然,你必須請務必替換ing,然後用ring替換其他內容,否則ring中的ing將被重新替換!)

+0

tnx很多,這正是我一直在尋找......對不起,我的問題並不清楚 – ananymous59