首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正则表达式双括号问题

正则表达式双括号问题
EN

Stack Overflow用户
提问于 2020-11-04 03:20:26
回答 1查看 246关注 0票数 1

我有一个正则表达式:(\[.*?\]),用于查找模式[data1],[data2],[data3],并且工作,但是我找到了一个不能工作的例子:[*this bracket have a other bracket[]]

我试图找到一个解决方案,如果括号中包含内括号,则在识别过程中会出现错误。

这是python代码

代码语言:javascript
复制
tags = re.findall('\[.*?\]', log_string) 
  • 这是目标日志

TimeStamp: 2020-11-4 11:22:55

=>结果: TimeStamp: 2020-11-4 11:22:55,事件:突破点命中

TimeStamp: 2020-11-4 12:24:18事件: ds:eax+0xFCA,cx]

=>结果: TimeStamp: 2020-11-4 12:24:18,[活动: ds:eax+0xFCA ]

这是个正常的案子。

这是一个错误案例。

请给我一些建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-04 03:31:25

如果内括号的嵌套深度限制在1:

代码语言:javascript
复制
\[(?:\[.*?]|.)*?]

现场演示

这是通过可选地使用外部括号内的整个模式[...]来实现的,如果没有找到这样的内部组,则只使用.

删除了]不必要的分组括号和不必要的转义。

或者如果您需要创建组1:

代码语言:javascript
复制
(\[(?:\[.*?]|.)*?])

现场演示

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64673831

复制
相关文章

相似问题

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