Skip to main content
 首页 » 编程设计

python之Python 正则表达式中的空格

2024年08月27日28webabcd

我目前正在编写一个 Python 脚本,它将搜索整个 .c 或 .h 文件并找到所有函数定义,这样我就可以进行一些细微的编辑。要查找我尝试使用正则表达式的所有函数定义。

我目前拥有的是:

"r'\w+?\s+?\w+?\s*?\(.*?\)[\n\s]*?{" 

这个逻辑的问题是它目前在某些情况下会接受某些 if 语句。例如:

else 
   if(//herpderp){} 

它这样做是因为 \s 包含 \n。我觉得如果我的表达式只查找空格而不是任何空格,我就不会遇到这个问题,但我无法检验我的理论,因为似乎没有 \(insert letter here) 只是一个简单的空间。

那么问题来了。如果您对如何修复我的正则表达式有任何建议,或者如果有更好的编写脚本的一般方法,请告诉我。

请您参考如下方法:

可以通过使用单个空格来匹配单个空格,就像匹配任何其他非元字符的字符一样:

"r'\w+? +?\w+? *?\(.*?\)\s*?{" 

' +?' 序列匹配仅一个或多个空格,非贪婪。我将 [\n\s] 替换为 \s,因为 \n 已经包含在内。

您可以扩展到具有更多类型空白的字符类:

[ \t] 

匹配空格或制表符。