首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可以将[k=v]与递归匹配的Regex?

可以将[k=v]与递归匹配的Regex?
EN

Stack Overflow用户
提问于 2018-11-27 00:42:05
回答 2查看 39关注 0票数 0

我希望为下面的情况编写一个Python2正则表达式。我还没有做过可行性分析

  • example_input_string:the quick [brown_1=fox] jumps over the [lazy=dog]
  • list_of_regex_matches:["[brown_1=fox]", "[lazy=dog]"]

基本上,我希望匹配所有的[\w+=.*]子字符串,并将它们输出到列表中。我想在这里使用的API似乎是re.findall,但是在Python2中正确的正则表达式是什么呢?

在这种情况下,子字符串[brown_1=fox][lazy=dog]分别匹配regex:[\w+=.*]

注意:允许使用以下输入字符串:the quick [brown=[fox[a=b][c=d]]] jumps over。也就是说,在与[\w+=.*]匹配的单个元素中,可能会再次出现[]=字符。但是保证在第一个“等于”字符之前,只有字母-数字字符和下划线。

EN

Stack Overflow用户

发布于 2018-11-27 01:06:03

您可以安装备用 module,它支持递归模式(?R),以便您可以使用如下所示的findall()方法:

代码语言:javascript
复制
import regex
s = 'the quick [brown=[fox[a=b][c=d]]] jumps over the [lazy=dog]'
print(regex.findall(r'\[(?>[^[\]]|(?R))*\]', s))

这一产出如下:

代码语言:javascript
复制
['[brown=[fox[a=b][c=d]]]', '[lazy=dog]']
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53491190

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档