weixin_42196168 2022-11-10 14:23 采纳率: 33.3%
浏览 77
已结题

正则表达式获取Script中的Json字符串

正则表达式获取Json字符串
<script type="text/javascript" src="/retail/retail-static/xx/scripts/ac-globalfooter.built.js"></script>
<script id="__NEXT_DATA__" type="application/json">
    {"props":{members:{
        "Name":"_test".
        "Age":30,
        "HeadUrl":"http://www.baidu.com"
    }},
    "a":"123",
    "b":"123",
    "c":"123"}
</script>
<script type="text/javascript" src="/retail/retail-static/xx/scripts/ac-globalfooter.js"></script>
我希望使用正则表达式获取<script id="__NEXT_DATA__" type="application/json"></script>中的json对象。我用的是C#。辛苦大家,麻烦大神了。

  • 写回答

4条回答 默认 最新

  • aabond 2022-11-10 15:23
    关注
    
    using System;
    using System.Text.RegularExpressions;
    namespace HelloWorldApplication
    {
       class HelloWorld
       {
          static void Main(string[] args)
          {
             string input =  "<script type=\"text/javascript\" src=\"/retail/retail-static/xx/scripts/ac-globalfooter.built.js\"></script>" +
                "<script id=\"__NEXT_DATA__\" type=\"application/json\">" +
                    "{\"props\":{members:{" +
                        "\"Name\":\"_test\"." +
                        "\"Age\":30," +
                        "\"HeadUrl\":\"http://www.baidu.com\""+
                    "}}," +
                    "\"a\":\"123\"," +
                    "\"b\":\"123\"," +
                    "\"c\":\"123\"}" +
                "</script>" +
                "<script type=\"text/javascript\" src=\"/retail/retail-static/xx/scripts/ac-globalfooter.js\"></script>";
    
              string pattern = "(?<=<script id=\"__NEXT_DATA__\" type=\"application/json\">).*?(?=</script>)";
    
              Regex reg = new Regex(pattern);
              Match match = reg.Match(input);
              string value = match.Groups[0].Value;
              Console.WriteLine("json为:{0}", value);
              Console.ReadKey();
          }
       }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月10日