python中的递归正则表达式如何实现
2023-12-18 02:52:07
python递归
1. 问题描述
在 Python 中实现递归正则表达式匹配,? 例如:
1. 如何编写匹配括号平衡字符串的表达式,如"foo(bar(bar(foo)))(foo1)bar1"
2. 提取aw函数参数,但是传参数比较复杂的场景;def func(a=10, b=100)
func(a=[(10+ 15) - 15*3], b=[(3 * 2 -6) * (3 - 2) * (1+(10+1))])
提取原有的入参值a =?[(10+ 15) - 15*3]?和 b=?[(3 * 2 -6) * (3 - 2) * (1+(10+1))]
2.?问题解决
默认的正则表达式,通过re,在python中可能是不支持递归正则的。不过有一个其它的库pyparsing可以实现
#!/usr/bin/env python
from pyparsing import nestedExpr
import sys
astring=sys.argv[1]
if not astring.startswith('('):
astring='('+astring+')'
expr = nestedExpr('(', ')')
result=expr.parseString(astring).asList()[0]
print(result)
运行它会产生:
% test.py "foo(bar(bar(foo)))(foo1)bar1"
['foo', ['bar', ['bar', ['foo']]], ['foo1'], 'bar1']
文章来源:https://blog.csdn.net/alooffox/article/details/134994990
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!