gpt4 book ai didi

php regex检测括号内的文本忽略嵌套括号

转载 作者:可可西里 更新时间:2023-11-01 12:17:14 25 4
gpt4 key购买 nike

我正在尝试使 php 正则表达式工作,该正则表达式解析括号中文本的字符串,同时忽略可能的嵌套括号:

假设我想要

Lorem ipsum [1. dolor sit amet, [consectetuer adipiscing] elit.]. Aenean commodo ligula eget dolor.[2. Dolor, [consectetuer adipiscing] elit.] Aenean massa[3. Lorem ipsum] dolor.

返回

[1] => "dolor sit amet, [consectetuer adipiscing] elit."
[2] => "Dolor, [consectetuer adipiscing] elit."
[3] => "Lorem ipsum"

到此为止

'/\[([0-9]+)\.\s([^\]]+)\]/gi'

但是当出现嵌套括号时它会中断。 See demo

如何忽略检测中的内括号?提前致谢!

最佳答案

您可以对以前的组使用递归引用:

(?<no_brackets>[^\[\]]*){0}(?<balanced_brackets>\[\g<no_brackets>\]|\[(?:\g<no_brackets>\g<balanced_brackets>\g<no_brackets>)*\])

See it in action

我们的想法是将您想要的匹配项定义为不带括号、被 [] 包围的内容,或者包含一系列无括号或符合第一个规则的平衡括号的内容。

关于php regex检测括号内的文本忽略嵌套括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32861047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com