如何在Python中使正则表达式忽略换行符?

3

我使用正则表达式如下

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

为了与 obj-c 中的返回语句相匹配,但当我像这样通过 Python 使用它时:
re.sub(r'return(\s+([^"\n;]+))?;',r'{\g<0>}',str(content))

我发现它与这个语句匹配:

我发现它像这样匹配

//please {return
[self funcA];}

如何处理代码错误?
1个回答

2

我认为问题在于你的正则表达式使用了\s,它匹配任何空格字符。

你可能只想匹配空格或制表符,可以使用[ \t]来代替:

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

(演示) 或者 - 更好的方法是:

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

请查看正则表达式演示

非常感谢,我还有一个问题,就是当我改变正则表达式为 r'return[ \t]+[^\n;]*;' 时,如何匹配这种情况 =======>>> return @"hello world"; 和 "return this question "; ,因为这会导致 "return this question "; 出现错误,像这样 "{return this question "; }。 - CurryChen
抱歉,您能分享一个类似于 https://regex101.com/r/mM6mK2/3 的演示链接吗? - Wiktor Stribiżew
https://regex101.com/r/mM6mK2/4 和 https://regex101.com/r/mM6mK2/5,谢谢。 - CurryChen
请查看demo 6demo 7 - Wiktor Stribiżew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接