假设我有一个字符串,如下所示:"func(arg1, arg2, arg3, arg4, ..., argn)"

编辑:此函数不是用某种特定语言编写的。它只有这种格式。如果这样做更简单,不要把它看作是函数调用,只是一个字符串。

我想写一个正则表达式来匹配函数和每个参数。我是用Python写的。所需的输出是:{"function" : "func", "arg" : ["arg1", "arg2", ... , "argn"]}

编辑:虽然参数可以是函数调用,但一旦创建了一个有效的正则表达式,我就可以轻松地递归地尝试将它们与同一个正则表达式匹配。我的意思是我可以用每个参数在函数上递归。但这并不真正相关。我不是在试图创建一个解释器,只是用来识别参数。

以下是我的尝试:import re

s = "func(arg1, arg2, arg3, arg4, argn)"

m = re.match(r"(?P\w+)\s?\((?P(?P\w+(,\s?)?)+)\)", s)

print m.groupdict()

这里是输出:{'function': 'func', 'args': 'arg1, arg2, arg3, arg4, argn', 'arg': 'argn'}

函数匹配得很好,参数集也很好。然而,我似乎无法与个人观点相匹配。这是正则表达式的问题,还是Python正则表达式匹配的限制?

EDIT2:我知道现在可以使用以下代码分割参数:d["arg"] = d["args"].split(", ")

但我想知道我是否能用正则表达式完成全部工作。特别是,我想知道为什么“arg”只与最后一个参数匹配。

EDIT3:我想我(1)希望找出Python每次只匹配最后一个参数的原因,以及(2)是否可以在Python中进行Scheme样式的模式匹配。或者在Python中有一些和Scheme样式模式匹配一样直观的东西。我查看了ast模块,它的语法非常复杂。

python中匹配函数_正则表达式以匹配函数名和Python中的所有参数相关推荐

  1. java正则匹配换行_正则表达式怎么匹配换行符

    正则表达式匹配文本中包含换行符等空白字符如何匹配 使用[\s\S]匹配任意字符,而不是使用"." 使用s单行修饰模式,例:$pattern = '#abc.*?def#s'; // ...

  2. linux 匹配 中文开头,中文正则表达式匹配问题之正则表达式中文匹配使用方法,...

    中文正则表达式匹配问题之正则表达式中文匹配使用方法, 这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的. \w匹配 ...

  3. pandas使用replace函数和正则表达式移除dataframe字符串数据列中头部指定模式字符串(Removing leading substring in dataframe)

    pandas使用replace函数和正则表达式移除dataframe字符串数据列中头部指定模式字符串(Removing leading substring in dataframe) 目录

  4. pandas使用replace函数和正则表达式移除dataframe字符串数据列中尾部指定模式字符串(Removing trailing substring in dataframe)

    pandas使用replace函数和正则表达式移除dataframe字符串数据列中尾部指定模式字符串(Removing trailing substring in dataframe) 目录

  5. java正则匹配多个斜杠_正则表达式以匹配JAVA中的两个斜杠

    小编典典 您要匹配的"字符"为: "[/\\\\]" 先为字符串复制反斜杠,然后再为正则表达式复制. 当您需要在也使用反斜杠转义字符串的语言中使用反斜杠时,这可 ...

  6. python正则表达式使用实例_正则表达式的基础知识,以及Python爬虫中的使用方法...

    一.正则表达式 实际上爬虫一共就四个主要步骤: 明确目标(要知道你准备在哪个范围或者网站去搜索) 爬(将所有的网站内容全部爬下来) 取(去掉对我们没有用处的数据) 处理数据 我们在第上一篇文章中介绍的 ...

  7. python匹配字符串_字符串匹配算法之Kmp算法(Python实现)

    Kmp算法的优势在于它只需要O(m)的与处理时间,而有限状态自动机最快也需要O(m * | Ʃ |).Kmp算法的主要思路跟字符串自动机很像,在预处理阶段建立一个前缀函数,然后顺序扫描文本T,即可找出 ...

  8. c语言匹配英文,正则英语_正则表达式怎么匹配英文句子_淘题吧

    ⑴ 正则表达式怎么匹配英文句子 如果只需要匹配任意一句话的话,可以这样写:(.|[\u4e00-\u9fa5])+.注:第一个点是小数点,最后面是一个中文句号希望可以帮到你! ⑵ "正则表达 ...

  9. python怎么匹配字符串_python正则表达式如何匹配字符串

    python正则表达式匹配字符串的方法:1.使用[(.+?)]这个正则表达式来提取单个位置的字符串:2.使用[(?P-)]这个正则表达式[匹配连续多个位置的字符串. python正则表达式匹配字符串的 ...

最新文章

  1. groovy–运算符重载
  2. 5脚12v继电器接线图解_【电器元件002】你真的懂汽车继电器么
  3. phpsotrm怎么 搜索功能_Windows 10 网络搜索设计太反人类?教你如何彻底关闭它
  4. 一周学好python_耗时一周整理的Python资料,包含各阶段所需网站、项目,收藏了?慢慢来...
  5. “3D字体”素材|让你的设计脱颖而出,看起来与众不同
  6. 在Windows*上编译Tensorflow教程
  7. Windws Server 2012 Server Backup(备份与还原)
  8. sql server 2000:不能打开到主机的连接,在端口1433:连接失败
  9. 计算机技术在音乐专业中的应用与探索,计算机技术在音乐教学中的应用与研究...
  10. (转载)vmware workstation14永久激活密钥分享
  11. android中百分比显示_如何在菜单栏中显示Android的电池百分比
  12. 系统集成项目管理工程师计算题(期望值)
  13. 2021.05.09 美团测开笔试-弹吉他
  14. WineBottler for Mac(Mac 运行 exe 程序工具)破解版安装
  15. 封装前端UI组件库--button
  16. ibm aix 抓包命令_在IBM AIX上模拟丢弃的TCP / IP数据包
  17. 二极管(二):肖特基二极管
  18. 爬取酷狗音乐网站,上榜单前500名的歌曲名称!
  19. 【转载】CSS3之Clip(裁剪)拓展阅读
  20. Python爬虫——aiohttp异步协程爬取同程旅行酒店评论

热门文章

  1. (这种方法简直就是在作弊) 7-25 一位的十六进制转换为十进制 (10 分) java
  2. 4G DTU在电力远程自动抄表中的应用
  3. 数据管理能力成熟度评估模型(Word版)国家标准GB/T 36073—2018
  4. ISSP与signaltap联调使用
  5. 计算机屏幕变红色,电脑屏幕变红色怎么办 电脑显示器变成红色怎么办 - 云骑士一键重装系统...
  6. Educational Codeforces Round 47 (Rated for Div. 2) :C. Annoying Present(等差求和)
  7. [ICCV2019]DF2Net: A Dense-Fine-Finer Network for Detailed 3D Face Reconstruction
  8. 中望CAD二次开发环境配置及使用
  9. oracle anonhugepage,linux系统中配置hugepage,提升oracle数据库性能
  10. html语言可以干什么,什么是HTML?