2016-08-08 90 views
3

我用這樣的如何使正則表達式忽略python中的新行?

return(\s+([^"\n;]+))?; 

正則表達式,以匹配OBJ-C return語句,但是當我用它通過蟒蛇是這樣的:

re.sub(r'return(\s+([^"\n;]+))?;',r'{\g<0>}',str(content)) 

我發現它匹配像本聲明

//please {return 
[self funcA];} 

並使代碼錯誤。我該如何處理它?

回答

2

我認爲問題是你的正則表達式有\s匹配任何空格。

你可能只想匹配字面空格或製表符與[ \t]

r'return([ \t]+([^"\n;]+))?;' 

demo)或 - 更好:

r'return[ \t]+[^"\n;]*;' 

the regex demo

+0

非常感謝你和我有什麼我可以匹配這些情況的anthor問題======= >>> return @「hello world」;和「迴歸這個問題」; ,當我改變正則表達式r'return [\ t] + [^ \ n;] *;'它會讓<<「返回這個問題」; >>像這樣的錯誤「{return this question」; } – CurryChen

+0

對不起,您可以分享https://regex101.com/r/mM6mK2/3這樣的演示鏈接嗎? –

+0

https://regex101.com/r/mM6mK2/4和https://regex101.com/r/mM6mK2/5謝謝 – CurryChen