正则平衡组在.NET下的使用
来源:互联网 发布:windows聚焦图片 编辑:程序博客网 时间:2024/05/19 12:25
今天碰到一个任务,让我从一段js代码中抽取出一段json数据。抽取的代码如下:
var videoListJSON = { "count": 5, "name": "Bear 101", "clips": [ { "clipRefId": "1f3a68a05cf6d5efcc00e5c416c92964d252cbc7", "contentId": "842166", "programTitle": "Porter Ridge", //... "aspectRatio": "16:9" }, { "clipRefId": "5f9822763f58fae2ffbf050b64ffe2b0b9c787ed" //... }, { "clipRefId": "5f9822763f58fae2ffbf050b64ffe2b0b9c787ed" //... }]};
任务就是抽取这个json变量中的clips,然后数组中每个数据还得单独抽取出来。
刚接到活的任务,第一反应就是用正则去匹配,但是想要准确的把想要的东西提取出来也不能单是利用简单的规则就行了,这里就需要使用到正则的平衡组这个特性了。(注明:以下代码中所使用的正则在C#里有效,并不代表其它语言里也能这么写,因为每个语言对正则表达式的某些特性的写法是有区别的)
static string[] extractData(string input){ //先抽取clips后整个的字符串 Regex r1 = new Regex(@" ""clips""\s*:\s* ( \[ ( (?<open>\[) | (?<-open>\]) | [^\[\]]+ )* (?(open)(?!)) \] )", RegexOptions.IgnorePatternWhitespace); //匹配clips数组中每一项 Regex r2 = new Regex(@" { ( (?<open>{) | (?<-open>}) | [^{}]+ )* (?(open)(?!)) }", RegexOptions.IgnorePatternWhitespace); string clipsString = string.Empty; List<string> clipsList = new List<string>(); Match m1 = r1.Match(input); if (m1.Success) { clipsString = m1.Groups[1].Value; } var m2s = r2.Matches(clipsString); foreach (Match m2 in m2s) { clipsList.Add(m2.Groups[0].Value); } return clipsList.ToArray();}
关于正则平衡组的详细说明,网上已有好多人写出详解了。具体链接参考如下:
正则表达式——详细讲解平衡组
Matching Balanced Constructs with .NET Regular Expressions
阅读全文
0 0
- 正则平衡组在.NET下的使用
- .NET 正则表达式 平衡组
- .net 下的正则表达式的使用
- 强大的正则表达式---平衡组
- .NET正则基础之——平衡组
- .NET正则基础之——平衡组
- .NET正则基础之——平衡组(转)
- .NET正则基础之——平衡组
- .NET正则基础之——平衡组
- .NET正则基础之——平衡组
- 平衡组 正则表达式
- 正则表达式 平衡组
- AJAX在.NET下的使用配置
- VTK在.Net下的使用
- VTK在.Net下的使用
- redis在.NET下的使用
- redis在.NET下的使用
- redis在.NET下的使用
- 一个例子让你理解c++的指针(传递动态内存)
- Unexpected error. Unable to verify database connection CDH 5.10.0
- 基本数据类型
- Hdu 5491 The Next【贪心+lowbit】
- Kotlin 学习资料
- 正则平衡组在.NET下的使用
- Maxas GEMM
- 剑指offer——5.用两个栈实现
- 328. Odd Even Linked List(Java)
- web项目目录结构和一些配置文件
- hdu1083培训班 ~~二分图最大匹配
- 整数算法训练05—一个数如果恰好等于它的因子之和,这个数被成为”完数” 例如:6=1+2+3.请编程找出1000以内的完数
- 网络判断网络失败后弹出AlertDialog窗口(网络判断升级版)
- 上海PHP09期,平均薪资10246元,毕业03个工作日,就业率达62.50%