获取方括号的内容,避免嵌套括号

2023-12-31

(第一次发帖,来自 Google 的长期访客)

我正在尝试提取一些方括号的内容,但是我遇到了一些麻烦。我已经让它适用于圆括号,如下所示,但我看不出应该如何修改它以适用于方括号。我本以为在这个例子中用圆形替换方形,反之亦然应该可行,但显然不行。

它需要忽略括号内的括号。所以它不会返回 (11) 而是会返回 (10(11)12)。

$preg = '#\(((?>[^()]+)|(?R))*\)#x';
$str = '123(456)(789)(10(11)12)';

if(preg_match_all($preg, $str, $matches)) {
    $matches = $matches[0];
} else {
    $matches = array();
}

echo '<pre>'.print_r($matches,true).'</pre>';

This returns:

Array (
    [0] => (456)
    [1] => (789)
    [2] => (10(11)12)
)

这是完美的。但是,我怎样才能让这个工作适用于带有方括号的字符串,例如:

$str = '123[456][789][10[11]12]'; 

$preg = '#\[((?>[^\[\]]+)|(?R))*\]#x';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取方括号的内容,避免嵌套括号 的相关文章

随机推荐

  • ASP.NET MVC:在数据输入表单中搜索

    感谢您的阅读 我正在构建一个数据输入表单 我试图找出一种方法 让用户提供一个条件 例如姓氏 在员工表中搜索符合条件的所有员工 以他们可以选择正确员工的方式显示结果 然后通过该员工的 ID 返回到数据输入表单 以便他们可以完成记录并保存 Th
  • HTML2PDF 对日语 (utf8) 的支持不起作用

    对于 PHP 中的报告生成 我使用 HTML2PDF 它适用于英语 但无法为日语提供正确的输出 如何在 hHTML2PDF 库中设置 utg8 字符 有没有办法在 HTML2PDF 库中实现这一点 我得到的输出类似于 而不是日语文本 在 v
  • 在 iOS 中将日期格式化为 dd-MMM

    我一直在寻找这个但找不到它 我在 NSDictionary 中有一个包含 NSDate 的对象 现在标准的 NSDate 对象相当长 我想以 dd MMM 格式向用户显示 例如 原始日期可能是2012 04 23 00 00 00 0000
  • @-moz-document url-prefix() 的作用是什么?

    在西蒙 科里森的新中旧的响应式网页设计 https colly com v4 在CSS中 有几个这样的声明 moz document url prefix fl float left margin 12px 4px 0 0 padding
  • AFHTTPSessionManager 使用基于 SOAP 的服务

    我查了几个帖子 this https stackoverflow com questions 24181844 how to convert afnetworking service invoke to use afhttpsessionm
  • 作为 System.Net.Mail 附件的流为 0 字节

    我有一个项目 我正在使用 PDF 生成器将文件发送给用户 我们希望为用户提供将此文件附加到电子邮件的选项 但我们在同时使用 Stream 对象和附件逻辑时遇到了问题 我们从 ABCpdf 开始 它有两种保存方法 它可以保存到 Stream
  • 为什么JVM堆不断增长?

    我编写了一个简单的程序并使用 jconsole exe 来监视其堆大小 public class HeapTest public static void main String args while true Here is the res
  • 构建通知时出错

    我正在使用这个教程http www vogella com articles AndroidNotifications article html http www vogella com articles AndroidNotificati
  • 通过 jquery ajax 提交联系表单时出错

    基于此question https stackoverflow com questions 15767317 initialize javascript in php script for a contact form我不得不重写我的联系表
  • AngularJS ng-repeat 处理空列表情况

    我认为这将是一个很常见的事情 但我找不到如何在 AngularJS 中处理它 假设我有一个事件列表并想用 AngularJS 输出它们 那么这很简单 ul li event title li ul 但是当列表为空时我该如何处理呢 我想要一个
  • 为什么我收到“无法发送 GpuChannelMsg_CreateCommandBuffer”错误?

    我收到以下错误 DevTools listening on ws 127 0 0 1 49722 devtools browser e3cdef84 2a4f 4829 8cb2 4baf45efa446 0903 065243 722 E
  • strcpy() 和字符串数组

    我需要将用户的输入存储到字符串数组中 include
  • Ninject 和 DataContext 处置

    我正在使用 Ninject 从内核检索 DataContext 我想知道 Ninject 是否自动处置 DataContext 或者他如何处理 dispose 行为 根据我自己的经验 我知道处理数据上下文非常重要 并且每当您创建 DataC
  • 使用 R 合并重复列

    我有一个包含 4 列的表 其中第 1 3 列和第 2 4 列代表相同的变量 Codes Description Codes Description xxxxx describes xxxxx zzzzz describes zzzzz yy
  • CreateFile()串行通信问题[重复]

    这个问题在这里已经有答案了 我试图通过 USB 端口 名为 COM15 进行一些串行通信 但出现错误 这是发生错误的代码 HANDLE myPortHandle CreateFile COM15 GENERIC READ GENERIC W
  • 如何获取请求头、远程地址和其他HttpServletRequest特定信息?

    我有一个 JSF 2 0 Web 项目 我的 Web 有一个表单 它必须执行以下操作 获取表单的参数并将其保存在Bean中 完成 从 servlet 获取此信息 远程地址 远程主机 区域设置 内容类型 边界 内容长度 字符编码 将Bean数
  • 当后缀缺失时,编译器选择前缀 ++ - 谁说的?

    当您为用户定义类型定义前缀运算符 并且不提供后缀版本时 编译器 至少在 Visual C 中 将在您的代码调用缺少的 POSTFIX 版本时使用 PREFIX 版本 至少它会给你一个警告 但是 我的问题是 为什么它不给你一个未定义成员函数的
  • 如何处理 groovy 方法中的多个返回类型?

    我需要一种方法 在成功时返回 Id 在失败时返回错误列表 前代码片段 def save def errors if Employee save flush true return Employee id else errors add Ca
  • 在 Silverlight 中显示 ® 符号

    Folks 我正在尝试在我的 silverlight 应用程序中显示 和上标 TM 符号 我想将包含符号的文本保存在 resx 文件中 我尝试过的事情 将任何文档中的 符号复制粘贴到 resx 文件中 符号得到 显示在 resx 文件中 但
  • 获取方括号的内容,避免嵌套括号

    第一次发帖 来自 Google 的长期访客 我正在尝试提取一些方括号的内容 但是我遇到了一些麻烦 我已经让它适用于圆括号 如下所示 但我看不出应该如何修改它以适用于方括号 我本以为在这个例子中用圆形替换方形 反之亦然应该可行 但显然不行 它