python中匹配函数_正则表达式以匹配函数名和Python中的所有参数
假设我有一个字符串,如下所示:"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中的所有参数相关推荐
- java正则匹配换行_正则表达式怎么匹配换行符
正则表达式匹配文本中包含换行符等空白字符如何匹配 使用[\s\S]匹配任意字符,而不是使用"." 使用s单行修饰模式,例:$pattern = '#abc.*?def#s'; // ...
- linux 匹配 中文开头,中文正则表达式匹配问题之正则表达式中文匹配使用方法,...
中文正则表达式匹配问题之正则表达式中文匹配使用方法, 这篇文章主要讲如何使用正则匹配中文字符,中文正则表达式的匹配规则不像其他正则规则一样容易记住,下面一起看看这个中文正则表达式是怎么样的. \w匹配 ...
- pandas使用replace函数和正则表达式移除dataframe字符串数据列中头部指定模式字符串(Removing leading substring in dataframe)
pandas使用replace函数和正则表达式移除dataframe字符串数据列中头部指定模式字符串(Removing leading substring in dataframe) 目录
- pandas使用replace函数和正则表达式移除dataframe字符串数据列中尾部指定模式字符串(Removing trailing substring in dataframe)
pandas使用replace函数和正则表达式移除dataframe字符串数据列中尾部指定模式字符串(Removing trailing substring in dataframe) 目录
- java正则匹配多个斜杠_正则表达式以匹配JAVA中的两个斜杠
小编典典 您要匹配的"字符"为: "[/\\\\]" 先为字符串复制反斜杠,然后再为正则表达式复制. 当您需要在也使用反斜杠转义字符串的语言中使用反斜杠时,这可 ...
- python正则表达式使用实例_正则表达式的基础知识,以及Python爬虫中的使用方法...
一.正则表达式 实际上爬虫一共就四个主要步骤: 明确目标(要知道你准备在哪个范围或者网站去搜索) 爬(将所有的网站内容全部爬下来) 取(去掉对我们没有用处的数据) 处理数据 我们在第上一篇文章中介绍的 ...
- python匹配字符串_字符串匹配算法之Kmp算法(Python实现)
Kmp算法的优势在于它只需要O(m)的与处理时间,而有限状态自动机最快也需要O(m * | Ʃ |).Kmp算法的主要思路跟字符串自动机很像,在预处理阶段建立一个前缀函数,然后顺序扫描文本T,即可找出 ...
- c语言匹配英文,正则英语_正则表达式怎么匹配英文句子_淘题吧
⑴ 正则表达式怎么匹配英文句子 如果只需要匹配任意一句话的话,可以这样写:(.|[\u4e00-\u9fa5])+.注:第一个点是小数点,最后面是一个中文句号希望可以帮到你! ⑵ "正则表达 ...
- python怎么匹配字符串_python正则表达式如何匹配字符串
python正则表达式匹配字符串的方法:1.使用[(.+?)]这个正则表达式来提取单个位置的字符串:2.使用[(?P-)]这个正则表达式[匹配连续多个位置的字符串. python正则表达式匹配字符串的 ...
最新文章
- groovy–运算符重载
- 5脚12v继电器接线图解_【电器元件002】你真的懂汽车继电器么
- phpsotrm怎么 搜索功能_Windows 10 网络搜索设计太反人类?教你如何彻底关闭它
- 一周学好python_耗时一周整理的Python资料,包含各阶段所需网站、项目,收藏了?慢慢来...
- “3D字体”素材|让你的设计脱颖而出,看起来与众不同
- 在Windows*上编译Tensorflow教程
- Windws Server 2012 Server Backup(备份与还原)
- sql server 2000:不能打开到主机的连接,在端口1433:连接失败
- 计算机技术在音乐专业中的应用与探索,计算机技术在音乐教学中的应用与研究...
- (转载)vmware workstation14永久激活密钥分享
- android中百分比显示_如何在菜单栏中显示Android的电池百分比
- 系统集成项目管理工程师计算题(期望值)
- 2021.05.09 美团测开笔试-弹吉他
- WineBottler for Mac(Mac 运行 exe 程序工具)破解版安装
- 封装前端UI组件库--button
- ibm aix 抓包命令_在IBM AIX上模拟丢弃的TCP / IP数据包
- 二极管(二):肖特基二极管
- 爬取酷狗音乐网站,上榜单前500名的歌曲名称!
- 【转载】CSS3之Clip(裁剪)拓展阅读
- Python爬虫——aiohttp异步协程爬取同程旅行酒店评论
热门文章
- (这种方法简直就是在作弊) 7-25 一位的十六进制转换为十进制 (10 分) java
- 4G DTU在电力远程自动抄表中的应用
- 数据管理能力成熟度评估模型(Word版)国家标准GB/T 36073—2018
- ISSP与signaltap联调使用
- 计算机屏幕变红色,电脑屏幕变红色怎么办 电脑显示器变成红色怎么办 - 云骑士一键重装系统...
- Educational Codeforces Round 47 (Rated for Div. 2) :C. Annoying Present(等差求和)
- [ICCV2019]DF2Net: A Dense-Fine-Finer Network for Detailed 3D Face Reconstruction
- 中望CAD二次开发环境配置及使用
- oracle anonhugepage,linux系统中配置hugepage,提升oracle数据库性能
- html语言可以干什么,什么是HTML?