2016-08-08 25 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