C#-正则,常用几种数据解析-端午快乐

2023-06-13,,

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

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

开始吧:

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

 //匹配对象
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\",\"支付状态\":\"未支付\",\"支付时间\":\"\"}]"; //1.查询是否存在“订单号”数据的字符串
var isExists = Regex.IsMatch(expl, @"价格");
Console.WriteLine("1.查询是否存在“订单号”数据的字符串");
Console.WriteLine(isExists);

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

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

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

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

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

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

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

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

 //4.查询全部订单“价格”
MatchCollection m04 = Regex.Matches(expl, "\"价格\":[^,]+");
Console.WriteLine("\n4.查询全部订单“价格”");
foreach (Match m004 in m04)
{
Console.WriteLine(m004.Value);
}

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

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

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

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

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

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

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

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

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

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

  8.大小写匹配结果

 //8.大小写匹配结果
var m08 = Regex.IsMatch("I love ZuGuo", "ZUGUO");
Console.WriteLine("\n8.大小写匹配结果");
Console.WriteLine(m08);

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

  9.忽略大小写

 //9.忽略大小写
var m09 = Regex.IsMatch("I love ZuGuo", "ZUGUO",RegexOptions.IgnoreCase);
Console.WriteLine("\n9.忽略大小写");
Console.WriteLine(m09);

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

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

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

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

  代码:

 //C#-正则,常用几种数据解析-端午快乐

             //匹配对象
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\",\"支付状态\":\"未支付\",\"支付时间\":\"\"}]"; //1.查询是否存在“订单号”数据的字符串
var isExists = Regex.IsMatch(expl, @"价格");
Console.WriteLine("1.查询是否存在“订单号”数据的字符串");
Console.WriteLine(isExists); //2.查询一个“价格”(不包含小数部分)
var m02 = Regex.Match(expl, "\"价格\":\\d+");
Console.WriteLine("\n2.查询一个“价格”(不包含小数部分)");
Console.WriteLine(m02.Value); //3.查询一个订单“价格”(包含价格的小数部分)
var m03 = Regex.Match(expl, "\"价格\":[^,]+");
Console.WriteLine("\n3.查询一个订单“价格”(包含价格的小数部分)");
Console.WriteLine(m03.Value); //4.查询全部订单“价格”
MatchCollection m04 = Regex.Matches(expl, "\"价格\":[^,]+");
Console.WriteLine("\n4.查询全部订单“价格”");
foreach (Match m004 in m04)
{
Console.WriteLine(m004.Value);
} //5.查询全部订单“价格”,输出价格信息
MatchCollection m05 = Regex.Matches(expl, "\"价格\":(?<price>[^,]+)");
Console.WriteLine("\n5.查询全部订单“价格”,输出价格信息");
foreach (Match m005 in m05)
{
Console.WriteLine(m005.Groups["price"].Value);
} //6.查询全部订单信息,输出信息
MatchCollection m06 = Regex.Matches(expl, "\"订单号\":(?<orderid>[^,]+),\"价格\":(?<price>[^,]+),\"下单时间\":\"(?<createtime>[^,]+)\",\"支付状态\":\"(?<paystatus>[^,]+)\"");
Console.WriteLine("\n6.查询全部订单信息,输出信息");
foreach (Match m006 in m06)
{ Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
m006.Groups["orderid"], m006.Groups["orderid"].Value,
m006.Groups["price"], m006.Groups["price"].Value,
m006.Groups["createtime"], m006.Groups["createtime"].Value,
m006.Groups["paystatus"], m006.Groups["paystatus"].Value);
} //7.查询“未支付”订单信息
MatchCollection m07 = Regex.Matches(expl, "\"订单号\":(?<orderid>[^,]+),\"价格\":(?<price>[^,]+),\"下单时间\":\"(?<createtime>[^,]+)\",\"支付状态\":\"(?<paystatus>未支付)\"");
Console.WriteLine("\n7.查询“未支付”订单信息");
foreach (Match m007 in m07)
{ Console.WriteLine(@"{0}:{1},{2}:{3},{4}:{5},{6}:{7}",
m007.Groups["orderid"], m007.Groups["orderid"].Value,
m007.Groups["price"], m007.Groups["price"].Value,
m007.Groups["createtime"], m007.Groups["createtime"].Value,
m007.Groups["paystatus"], m007.Groups["paystatus"].Value);
} //8.大小写匹配结果
var m08 = Regex.IsMatch("I love ZuGuo", "ZUGUO");
Console.WriteLine("\n8.大小写匹配结果");
Console.WriteLine(m08); //9.忽略大小写
var m09 = Regex.IsMatch("I love ZuGuo", "ZUGUO",RegexOptions.IgnoreCase);
Console.WriteLine("\n9.忽略大小写");
Console.WriteLine(m09); //10.匹配有空格的字符串信息
var m10 = Regex.Match("端 午 快 乐", "[^A]+");
Console.WriteLine("\n10.匹配有空格的字符串信息");
Console.WriteLine(m10.Value); Console.ReadLine();

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

C#-正则,常用几种数据解析-端午快乐的相关教程结束。

《C#-正则,常用几种数据解析-端午快乐.doc》

下载本文的Word格式文档,以方便收藏与打印。