正则表达式匹配成对括号

devtools/2024/9/24 22:24:23/

匹配一对括号,用于在一个html文本中提取JSon 文本。例如

{ “duration”:7599,"minBufferTime{second bracket }{third bracket} }
一对加粗的{} ,而不要中间的{}。简单写法会出现错误匹配。

在.Net Framework的正则表达式中,提供了”平衡组/递归匹配“的处理方法(见《正则表达式30分钟入门教程》)

仔细研读之后,文中给出了匹配div的表达式,但是测试失败。
原文反而表达式如下:

<div[^>]*>[^<>]*(((?'Open'<div[^>]*>)[^<>]*)+((?'-Open'</div>)[^<>]*)+)*(?(Open)(?!))</div>.

仔细分析失败原因,发现其中的[^<>] 有问题,这个含义是不匹配<>中的内容,然而,html中<>到处都是啊,因此这个匹配几乎不能通过。本人将其改为任意字符匹配,就可以使用了。最后版本如下

<div[^>]*>.*(((?<Open><div[^>]*>),*)+((?<-Open></div>).*)+)*(?(Open)(?!))</div>

举一反一
匹配Json文本的表达式如下:

{[\s\S]*(((?<Open>{[\s\S]*),*)+((?<-Open>})[\s\S]*)+)*(?(Open)(?!))}

匹配的字串为

some thing 
{first line {second line } something _{third line }somthing {fourth lien } someting the last line } some thing 

说明上述方法,.Net 支持,其余平台或者工具不一定支持。
匹配截图

在这里插入图片描述

参考:
https://bbs.csdn.net/topics/370080437

马拉孙于泛五道口地区
2020-12-21
冬至

祝大家吃饺子快乐。


http://www.ppmy.cn/devtools/99718.html

相关文章

数学建模学习(117):四阶龙格-库塔方法从理论到Python/matlab实践

文章目录 1. 概述2. 输入要求3. 公式介绍4. 实例与应用案例 1: 使用h = 0.5解决问题案例2: 使用不同步长 h = 0.2和h = 0.05 的比较案例 3: 自适应步长控制与Runge-Kutta-Fehlberg方法5. 代码实现5.1 Python实现四阶龙格-库塔方法5.2 Matlab实现四阶龙格-库塔方法5.3 Matlab实现…

研究人员利用ChatGPT的强大功能,创建数字病理学AI工具

丹娜—法伯癌症研究所和威尔康奈尔医学院的科学家开发并测试了针对数字病理学的新型人工智能工具。数字病理学是一个相对较新的领域&#xff0c;它使用由组织样本创建的高分辨率数字图像来诊断疾病并为治疗决策提供参考。 他们的论文于 2024 年 7 月 9 日发表在《柳叶刀数字健…

ML307R_APP_DEMO_SDK TCP/UDP使用介绍

ML307R_APP_DEMO_SDK是在ML307R_OpenCPU_Standard_SDK标准代码基础上&#xff0c;新增了面向用户APP层的demo示例&#xff0c;与标准代码中examples的示例代码不同&#xff0c;app_demo实现了联网自动化&#xff0c;数据透传&#xff0c;各功能可独立自动运行&#xff0c;并对用…

【提示学习论文】AAPL: Adding Attributes to Prompt Learning for Vision-Language Models

AAPL: Adding Attributes to Prompt Learning for Vision-Language Models&#xff08;2024CVPR&#xff09; 问题&#xff1a;在unseen class上&#xff0c;性能提升有限解决&#xff1a;在提示学习中引入对抗性标记嵌入adversarial token embedding&#xff0c; 将低层次视觉…

油动长航时垂直起降固定翼无人机技术详解

油动长航时垂直起降固定翼无人机技术是一种结合了固定翼无人机长航时、高速度、远距离飞行能力和旋翼无人机垂直起降灵活性的创新技术。以下是对该技术的详细解析&#xff1a; 一、技术特点 1. 垂直起降能力&#xff1a; - 无需长距离的滑行跑道&#xff0c;可以在狭小空间内实…

使用Java语言,引入依赖apache-poi中的Excel文档操作

前言&#xff1a; HSSF针对于excel03之前版本.xlsXSSF针对于excel07之后版本.xlsxSXSSF针对于excel07之后版本&#xff0c;升级版.xlsx apache-poi官网图片 首先引入相关文档&#xff1a; <dependencies><!-- 03- 版本的excel .xls --><dependency>&…

通过C# 读取PDF页面大小、方向、旋转角度

在处理PDF文件时&#xff0c;了解页面的大小、方向和旋转角度等信息对于PDF的显示、打印和布局设计至关重要。本文将介绍如何使用免费.NET 库通过C#来读取PDF页面的这些属性。 文章目录 C# 读取PDF页面大小&#xff08;宽度、高度&#xff09;C# 判断PDF页面方向C# 检测PDF页面…

网络层 I(网络层的功能)【★★★★★★】

&#xff08;★★&#xff09;代表非常重要的知识点&#xff0c;&#xff08;★&#xff09;代表重要的知识点。 一、 路由与转发&#xff08;★★&#xff09; 路由器主要完成两个功能&#xff1a; 1. 路由选择 【&#xff08;确定哪一条路径&#xff09;根据路由选择协议构…