python 包含括号的跨行匹配问题

疏星暗淡 2017-02-24 09:43:12
小弟需要写一个python脚本把c语言声明的函数提取到.h文件中,声明的函数主要有一下格式
import re
m = source_file.read()
n = m.decode()
l = re.findall('int.+\(int.+\)', n)
if l:
for i in l:
print(i)
只能匹配前两种形式,该如何改变正在正则表达式才能使得三种都匹配,并且想已
int set(int id, int a);这样的形式写入.h文件中。

source_file文件内容如下所示:
int set(int id, int a)
{
...
return 0;
}
int get(int id)
{
...
return 0;
}
int set(int id,
int b,
int c)
{
...
return 0;
}
...全文
260 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
疏星暗淡 2017-02-27
  • 打赏
  • 举报
回复
感谢大神指教,多谢了。
屎克螂 2017-02-24
  • 打赏
  • 举报
回复
print map(lambda x: x.replace('\n', ''), re.findall('int.+\(int.[\s\S]+?\)', a)) ['int set(int id, int a)', 'int get(int id)', 'int set(int id,int b,int c)']

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧