Chinaunix首页 | 论坛 | 博客
  • 博客访问: 13030873
  • 博文数量: 1293
  • 博客积分: 13501
  • 博客等级: 上将
  • 技术积分: 17974
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 18:11
文章分类

全部博文(1293)

文章存档

2019年(1)

2018年(1)

2016年(118)

2015年(257)

2014年(128)

2013年(222)

2012年(229)

2011年(337)

分类: C#/.net

2016-03-24 19:28:16

    Regex类表示.NET Framework 正则表达式引擎。可用于快速分析大量的文本来查找特定的字符模式 ;若要提取,编辑、 替换或删除文本子字符串 ;并将提取的字符串添加到集合以生成报告。

一、正则表达式类Regex类用法

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Text.RegularExpressions;
  6. namespace TestRegex
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             replaceString();
  13.             getFieldValue();
  14.             getSpecifyValue();
  15.             judgeJSONString();
  16.             Console.ReadLine();
  17.         }
  18.         static void replaceString()
  19.         {
  20.             string line = "ADDR=1234;NAME=ZHANG;PHONE=6789";
  21.             Regex reg = new Regex("NAME=(.+);");
  22.             string modified = reg.Replace(line, "NAME=WANG;");
  23.             Console.WriteLine(modified + "\n");
  24.         }
  25.         ///

  26.         /// 抽取某些特征数据
  27.         ///

  28.         ///
  29.         static void getFieldValue()
  30.         {
  31.             string content = 
  32.   "src=C:\\Users\\Administrator\\Desktop\\WeixinImg\\08.jpg\r\nDOS图片1\r\nsrc=C:\\Users\\Administrator\\Desktop\\WeixinImg\\10.jpg\r\nDOS图片2\r\n";
  33.             Regex reg = new Regex(@"src=(.+)");

  34.             List urlList = new List();
  35.             /* 遍历源串,取出所有的src=后面的地址 */
  36.             foreach (Match re in reg.Matches(content))
  37.             {
  38.                 Console.WriteLine("{0}", re.Groups[1].Value);
  39.             }
  40.         }
  41.         static void getSpecifyValue()
  42.         {
  43.             string line = "lane=1;speed=30.3mph;acceleration=2.5mph/s";
  44.             Regex reg = new Regex(@"speed\s*=\s*([\d\.]+)\s*(mph|km/h|m/s)*");
  45.             Match match = reg.Match(line);
  46.             Console.WriteLine(match + "\n");
  47.         }
  48.         static void judgeJSONString()
  49.         {
  50.             string testData = 
  51. "{\"url\":\"http:\\/\\/mmbiz.qpic.cn\\/mmbiz\\/1Y1o1ZhehiaBibw7nnxg20e67JrhWsWOmEYZz9TKah84LlNZGr89iclu965hdWkibQJ5S51icvH4nHrmnBwpEvbibr0w\\/0\"}";
  52.             Regex rgx = new Regex(@"\{.*\}", RegexOptions.IgnoreCase);
  53.             if (rgx.IsMatch(testData))
  54.             {
  55.                 testData = rgx.Match(testData).Value;
  56.                 Console.WriteLine("string is JSON!");
  57.                 Console.WriteLine(testData);
  58.             }
  59.             else
  60.                 Console.WriteLine("string isn't JSON!");
  61.         }
  62.     }
  63. }


image

二、正则表达式符号模式:

image

image

image

说明:

    由于在正则表达式中“ \ ”、“ ? ”、“ * ”、“ ^ ”、“ $ ”、“ + ”、“(”、“)”、“ | ”、“ { ”、“ [ ”等字符已经具有一定特殊意义,如果需要用它们的原始意义,则应该对它进行转义,例如希 望在字符串中至少有一个“ \ ”,那么正则表达式应该这么写: \\+ 。


参考文献:

阅读(2299) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~