zoukankan      html  css  js  c++  java
  • C#-正则,常用几种数据解析-端午快乐

    在等待几个小时就是端午节了,这里预祝各位节日快乐。

    这里分享的是几个在C#中常用的正则解析数据写法,其实就是Regex类,至于正则的匹配格式,请仔细阅读正则的api文档,此处不具体说明,谢谢。

    开始吧:

    1.查询是否存在“订单号”数据的字符串

    1 //匹配对象
    2             var expl = "[{"订单号":2006,"价格":888.90,"下单时间":"2016-06-08 17:01","支付状态":"已支付","支付时间":"2016-06-08 17:10"},{"订单号":2007,"价格":999.99,"下单时间":"2016-06-08 17:01","支付状态":"已支付","支付时间":"2016-06-08 17:10"},{"订单号":2008,"价格":999,"下单时间":"2016-06-08 17:01","支付状态":"未支付","支付时间":""}]";
    3 
    4             //1.查询是否存在“订单号”数据的字符串
    5             var isExists = Regex.IsMatch(expl, @"价格");
    6             Console.WriteLine("1.查询是否存在“订单号”数据的字符串");
    7             Console.WriteLine(isExists);
    View Code

    心得:IsMatch方法判断是否存在匹配的项,直接往方法里面填写需要搜索的信息就行。

    2.查询一个“价格”(不包含小数部分)

    1 //2.查询一个“价格”(不包含小数部分)
    2             var m02 = Regex.Match(expl, ""价格":\d+");
    3             Console.WriteLine("
    2.查询一个“价格”(不包含小数部分)");
    4             Console.WriteLine(m02.Value);
    View Code

      心得:Match直接获取匹配项的值

      3.查询一个订单“价格”(包含价格的小数部分)

    1 //3.查询一个订单“价格”(包含价格的小数部分)
    2             var m03 = Regex.Match(expl, ""价格":[^,]+");
    3             Console.WriteLine("
    3.查询一个订单“价格”(包含价格的小数部分)");
    4             Console.WriteLine(m03.Value);
    View Code

      心得:使用正则的^匹配数据

      4.查询全部订单“价格”

    1 //4.查询全部订单“价格”
    2             MatchCollection m04 = Regex.Matches(expl, ""价格":[^,]+");
    3             Console.WriteLine("
    4.查询全部订单“价格”");
    4             foreach (Match m004 in m04)
    5             {
    6                 Console.WriteLine(m004.Value);
    7             }
    View Code

      心得:Matches获取到匹配的集合组

      5.查询全部订单“价格”,输出价格信息

    1  //5.查询全部订单“价格”,输出价格信息
    2             MatchCollection m05 = Regex.Matches(expl, ""价格":(?<price>[^,]+)");
    3             Console.WriteLine("
    5.查询全部订单“价格”,输出价格信息");
    4             foreach (Match m005 in m05)
    5             {
    6                 Console.WriteLine(m005.Groups["price"].Value);
    7             }
    View Code

      心得:使用正则(?<price>xxxx)格式获取匹配组中的某一个项的值

      6.查询全部订单信息,输出信息

     1  //6.查询全部订单信息,输出信息
     2             MatchCollection m06 = Regex.Matches(expl, ""订单号":(?<orderid>[^,]+),"价格":(?<price>[^,]+),"下单时间":"(?<createtime>[^,]+)","支付状态":"(?<paystatus>[^,]+)"");
     3             Console.WriteLine("
    6.查询全部订单信息,输出信息");
     4             foreach (Match m006 in m06)
     5             {
     6 
     7 
     8                 Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
     9                  m006.Groups["orderid"], m006.Groups["orderid"].Value,
    10                  m006.Groups["price"], m006.Groups["price"].Value,
    11                  m006.Groups["createtime"], m006.Groups["createtime"].Value,
    12                  m006.Groups["paystatus"], m006.Groups["paystatus"].Value);
    13             }
    View Code

      心得:获取匹配组中的多个项的值

      7.查询“未支付”订单信息

     1 //7.查询“未支付”订单信息
     2             MatchCollection m07 = Regex.Matches(expl, ""订单号":(?<orderid>[^,]+),"价格":(?<price>[^,]+),"下单时间":"(?<createtime>[^,]+)","支付状态":"(?<paystatus>未支付)"");
     3             Console.WriteLine("
    7.查询“未支付”订单信息");
     4             foreach (Match m007 in m07)
     5             {
     6 
     7 
     8                 Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
     9                  m007.Groups["orderid"], m007.Groups["orderid"].Value,
    10                  m007.Groups["price"], m007.Groups["price"].Value,
    11                  m007.Groups["createtime"], m007.Groups["createtime"].Value,
    12                  m007.Groups["paystatus"], m007.Groups["paystatus"].Value);
    13             }
    View Code

      心得:匹配不同条件的集合组

      8.大小写匹配结果

    1 //8.大小写匹配结果
    2             var m08 = Regex.IsMatch("I love ZuGuo", "ZUGUO");
    3             Console.WriteLine("
    8.大小写匹配结果");
    4             Console.WriteLine(m08);
    View Code

      心得:Regex默认匹配区分大小写

      9.忽略大小写

    1 //9.忽略大小写
    2             var m09 = Regex.IsMatch("I love ZuGuo", "ZUGUO",RegexOptions.IgnoreCase);
    3             Console.WriteLine("
    9.忽略大小写");
    4             Console.WriteLine(m09);
    View Code

      心得:使用RegexOptions项忽略大小写

      10.匹配有空格的字符串信息

    1  //10.匹配有空格的字符串信息
    2             var m10 = Regex.Match("端 午 快 乐", "[^A]+");
    3             Console.WriteLine("
    10.匹配有空格的字符串信息");
    4             Console.WriteLine(m10.Value);
    View Code

      心得:正则的确很强大哈哈

      代码:

     1 //C#-正则,常用几种数据解析-端午快乐
     2 
     3             //匹配对象
     4             var expl = "[{"订单号":2006,"价格":888.90,"下单时间":"2016-06-08 17:01","支付状态":"已支付","支付时间":"2016-06-08 17:10"},{"订单号":2007,"价格":999.99,"下单时间":"2016-06-08 17:01","支付状态":"已支付","支付时间":"2016-06-08 17:10"},{"订单号":2008,"价格":999,"下单时间":"2016-06-08 17:01","支付状态":"未支付","支付时间":""}]";
     5 
     6             //1.查询是否存在“订单号”数据的字符串
     7             var isExists = Regex.IsMatch(expl, @"价格");
     8             Console.WriteLine("1.查询是否存在“订单号”数据的字符串");
     9             Console.WriteLine(isExists);
    10 
    11             //2.查询一个“价格”(不包含小数部分)
    12             var m02 = Regex.Match(expl, ""价格":\d+");
    13             Console.WriteLine("
    2.查询一个“价格”(不包含小数部分)");
    14             Console.WriteLine(m02.Value);
    15 
    16             //3.查询一个订单“价格”(包含价格的小数部分)
    17             var m03 = Regex.Match(expl, ""价格":[^,]+");
    18             Console.WriteLine("
    3.查询一个订单“价格”(包含价格的小数部分)");
    19             Console.WriteLine(m03.Value);
    20 
    21             //4.查询全部订单“价格”
    22             MatchCollection m04 = Regex.Matches(expl, ""价格":[^,]+");
    23             Console.WriteLine("
    4.查询全部订单“价格”");
    24             foreach (Match m004 in m04)
    25             {
    26                 Console.WriteLine(m004.Value);
    27             }
    28 
    29             //5.查询全部订单“价格”,输出价格信息
    30             MatchCollection m05 = Regex.Matches(expl, ""价格":(?<price>[^,]+)");
    31             Console.WriteLine("
    5.查询全部订单“价格”,输出价格信息");
    32             foreach (Match m005 in m05)
    33             {
    34                 Console.WriteLine(m005.Groups["price"].Value);
    35             }
    36 
    37             //6.查询全部订单信息,输出信息
    38             MatchCollection m06 = Regex.Matches(expl, ""订单号":(?<orderid>[^,]+),"价格":(?<price>[^,]+),"下单时间":"(?<createtime>[^,]+)","支付状态":"(?<paystatus>[^,]+)"");
    39             Console.WriteLine("
    6.查询全部订单信息,输出信息");
    40             foreach (Match m006 in m06)
    41             {
    42 
    43 
    44                 Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
    45                  m006.Groups["orderid"], m006.Groups["orderid"].Value,
    46                  m006.Groups["price"], m006.Groups["price"].Value,
    47                  m006.Groups["createtime"], m006.Groups["createtime"].Value,
    48                  m006.Groups["paystatus"], m006.Groups["paystatus"].Value);
    49             }
    50 
    51             //7.查询“未支付”订单信息
    52             MatchCollection m07 = Regex.Matches(expl, ""订单号":(?<orderid>[^,]+),"价格":(?<price>[^,]+),"下单时间":"(?<createtime>[^,]+)","支付状态":"(?<paystatus>未支付)"");
    53             Console.WriteLine("
    7.查询“未支付”订单信息");
    54             foreach (Match m007 in m07)
    55             {
    56 
    57 
    58                 Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
    59                  m007.Groups["orderid"], m007.Groups["orderid"].Value,
    60                  m007.Groups["price"], m007.Groups["price"].Value,
    61                  m007.Groups["createtime"], m007.Groups["createtime"].Value,
    62                  m007.Groups["paystatus"], m007.Groups["paystatus"].Value);
    63             }
    64 
    65             //8.大小写匹配结果
    66             var m08 = Regex.IsMatch("I love ZuGuo", "ZUGUO");
    67             Console.WriteLine("
    8.大小写匹配结果");
    68             Console.WriteLine(m08);
    69 
    70             //9.忽略大小写
    71             var m09 = Regex.IsMatch("I love ZuGuo", "ZUGUO",RegexOptions.IgnoreCase);
    72             Console.WriteLine("
    9.忽略大小写");
    73             Console.WriteLine(m09);
    74 
    75             //10.匹配有空格的字符串信息
    76             var m10 = Regex.Match("端 午 快 乐", "[^A]+");
    77             Console.WriteLine("
    10.匹配有空格的字符串信息");
    78             Console.WriteLine(m10.Value);
    79 
    80             Console.ReadLine();
    View Code

      此时此刻想法:端午3天放假,一个人在北京雾霾城市,的确无聊,还好有dota1,有兴趣朋友一起来吧,11(神牛步行3)

     

  • 相关阅读:
    生鲜购物篮模型
    shell脚本
    一号店评论文本聚类研究1
    数据框的合并(根据某一个字段)
    Reshape包
    R-kmeans
    python练习(续)
    python练习
    截取整数字符串
    java中PriorityQueue优先队列使用方法
  • 原文地址:https://www.cnblogs.com/wangrudong003/p/5571164.html
Copyright © 2011-2022 走看看