C# 通过正则平衡组匹配scrip标签中的json数据

Posted xiongtaotao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# 通过正则平衡组匹配scrip标签中的json数据相关的知识,希望对你有一定的参考价值。

前段在html页面中抓数据时碰到的一些问题,有些数据直接隐藏在script标签中了。于是想到了平衡组,分享下。

 

先通过HTML Agility Pack (非常强大的HTML解析工具)得到具体的HTML内容,通过具体的路径匹配所有的script标签,然后获取你想要的某个script内容,如下图:

技术分享图片

 

开始通过平衡组匹配:

string pattern = @"(?isnx) [ (?> [(?<Open>) | ](?<-Open>) | ((?![[]]).)* )* (?(Open)(?!)) ]";
MatchCollection mc = Regex.Matches(content, pattern);

if (mc.Count > 0 && mc[0].Success) Console.WriteLine(mc[0].Value);

这里我只要第一个json数组,如果你想要匹配多个json直接遍历即可。

 


以上是关于C# 通过正则平衡组匹配scrip标签中的json数据的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式中的平衡组

正则表达式匹配 C# 中的 Json 数组元素

C#:正则表达式不匹配一组单词

c# 正则表达式捕获

正则表达式中 如何取出所有组中的值?

只有在字符串中找到一组数字时,C# 正则表达式才匹配