以下python代码主要用于匹配各种类型的C语言函数,使用的为re.search,意味着包含,如果需要完全匹配请用re.match。

# coding=utf-8
import re# 匹配函数,包含函数体
function_return_type = r'''(\s*) #匹配所有的空白字符(   (const)?(volatile)?(static)?\s*(inline)?\s*(extern)?\s*((VOID)|(void)|(enum)|((unsigned)?(signed)?(long)?\s*(int)|(char)|(float)|(short)|(long)|(double))|(bool)|(struct\s*\w+)|(union\s*\w+)|(wait_queue_t)|(wait_queue_head_t))\s*(fastcall)?)  #匹配函数返回类型(\s*(\*)?\s*) #识别有无指针类型*,以及空白字符(\w+) #识别函数名称 ((\s*)(\()(\n)?) #识别函数开始小括号((\s*)?(const)?(volatile)?(\s*)? #参数前是否有const、volatile(   (static)?\s*(inline)?\s*(extern)?\s*((VOID)|(void)|(enum)|((unsigned)?(signed)?(long)?\s*\s*(int)|(char)|(float)|(short)|(long)|(double))|(bool)|(struct\s*\w+)|(union\s*\w+)|(wait_queue_t)|(wait_queue_head_t))\s*(fastcall)?) #参数类型(\s*)(\*)?(\s*)?(restrict)?(\s*)?(\w+)(\s*)?(\,)?(\n)?(.*)?)* ((\s*)(\))(\n)?) #函数结束小括号((\s*)(\{)(.|\n)*(\s*)(\})(\s*))#函数体
'''if __name__ == "__main__":code = """! static inline void wake_up_page(struct page *page,
! int bit)
{__wake_up_bit(page_waitqueue(page), &page->flags, bit);
}"""# print(type(code)) #输出类型# code1 = code.replace('!', '&') #替换掉!# code = re.sub('!', '?', code) #替换掉!# print(code1) #输出替换后的字符串pat1 = re.compile(function_return_type, re.X)ret = pat1.search(code) #包含# ret = pat1.match(code) #完全匹配if None == ret:print('不包含C函数定义!')else:print("包含C函数定义!")

参考链接:https://blog.csdn.net/yekong201210/article/details/99412853

Python正则表达式匹配C语言函数相关推荐

  1. python正则表达式匹配c语言的函数

    背景 当前在工程中有已经实现好了的很多c函数,由于某些原因,需要在所有c函数中临时加些一样的语句,这些语句最后会删除 解决方案1 参考: https://codeantenna.com/a/Rh6TZ ...

  2. Python正则表达式匹配中文

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 参照Py ...

  3. python正则表达式匹配字符串相关方法

    python正则表达式匹配字符串相关方法 一.匹配方法简要介绍及注意事项 1.贪婪匹配与非贪婪匹配 2.findall与search的选取问题 3.匹配时"()"和"[] ...

  4. python正则表达式匹配字符串中的电话号码_Python正则表达式匹配字符串中的数字...

    这篇文章主要介绍了Python正则表达式匹配字符串中的数字,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 1.使用"\d+"匹配全数字 代码: ...

  5. Python正则表达式匹配字符串中的数字

    导读 这篇文章主要介绍了Python正则表达式匹配字符串中的数字,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 1.使用"\d+"匹配全数字 ...

  6. 转载Python正则表达式匹配反斜杠'\'问题(——字符串转义与正则转义)

    个人总结(非转载部分): 1.原始字串(字符串前加r,如r'xxx')常用在正则表达式中,在正则表达运算中,要进行正则转义(原始字串不原始) 实例: 2.普通字串若要用于正则表达式中,会先进行&quo ...

  7. Python正则表达式匹配数字和小数

    Python正则表达式匹配数字和小数 1.匹配数字 import restr_date = 'hello world today is 2022.4.15 ok' num_list = re.find ...

  8. python - 正则表达式匹配汉字

    python - 正则表达式匹配汉字 Unicode 编码中汉字编码的范围在 \u4e00 到 \u9fa5之间 所以 匹配任意汉字: [\u4e00-\u9fa5] 匹配某个汉字可以把汉字转换成Un ...

  9. 【python正则表达式匹配获取文本中的11位手机号码】

    [python正则表达式匹配获取文本中的11位手机号码] 文前白话 代码实现 效果 正则知识补充 文前白话 根据需要,匹配一段没有固定格式的文本,识别其中的11位数字作为手机号,如果11位数字后还有数 ...

最新文章

  1. 你的眼睛一天内经历几万次“失明”,只是为了让你看清世界
  2. git和github的关系
  3. 安卓python编辑器-有了这款编辑器,随时随地都能愉快的学习python!
  4. python使用redis_Python操作redis系列之 列表(list) (五)
  5. 用python重复下载文件_python 爬虫 重复下载 二次请求
  6. python动态规划图解_动态规划案例之python实现(一)
  7. Linux 命令详解(二)awk 命令
  8. java 末级递归树_如何递归获取json里末级章节名称
  9. 大工18秋计算机文化基础在线测试2,大工18秋《计算机文化基础》在线测试2【答案】...
  10. UVA10608 Friends【并查集】
  11. 11. 瞬时响应:网站的高性能架构
  12. HDU-2510(深搜)
  13. 波束形成matlab程序,mVDR波束形成matlab程序
  14. 无法启动此程序因为计算机中丢失msvcr71
  15. eclipse查看ftl文件
  16. 微信小程序云数据库调用模板
  17. 落网民谣期刊推荐,给你整个排行榜!
  18. SAR图像滤波去噪效果评价研究
  19. 淘宝客淘宝联盟解析二合一链接获取优惠链接还原二合一,提取优惠信息
  20. 方正飞鸿智能信息平台(FIX ES2007)帮助手册+知识库

热门文章

  1. 扫地机器人湿地_扫地机器人的制作方法
  2. 库到底是个啥?为啥要链接,链接库的本质又是个啥?
  3. 看了撒贝宁的“躺平哲学”,才发现很多人不懂躺平,只会摆烂
  4. Unreal Engine 4 系列教程 Part 2:蓝图教程
  5. 华为全面阐述“汽车战略”
  6. win10 论演讲者视图勾选却打不开的问题
  7. elementUI——tab定位和渐变色图标
  8. 实用技术干货!教你用机器学习提高日常安全运维工作中的效率
  9. 创造力对领导力的重要性_创造力和我们作为员工的生活
  10. 和为S的连续正数序列(数学技巧,事半功倍)