someoftheregularexpressionslistedinthePerlCookBook

someoftheregularexpressionslistedinthePerlCookBook


/*  * This is a conversion of some of the regular expressions listed in  * the Perl CookBook.  * compile this sample with the command line:  * csc /debug /r:System.Text.RegularExpressions.dll cookbook.cs  * This has been tested with Beta1 of the Framework SDK.  */      using System.Text.RegularExpressions;  using System;      class Test    {    static void Main()      {      // Roman Numbers      string p1 = "^m*(d?c{0,3}|c[dm])"          "(l?x{0,3}|x[lc])(v?i{0,3}|i[vx])$";      string t1 = "vii";      Match m1 = Regex.Match(t1, p1);      Console.WriteLine("Match=["  m1  "]");          // Swap first two words      string t2 = "the quick brown fox";      string p2 = @"(\S )(\s )(\S )";      Regex x2 = new Regex(p2);      string r2 = x2.Replace(t2, "$3$2$1", 1);      Console.WriteLine("Result=["  r2  "]");          // Keyword = Value      string t3 = "myval = 3";      string p3 = @"(\w )\s*=\s*(.*)\s*$";      Match m3 = Regex.Match(t3, p3);      Console.WriteLine("Group1=["  m1.Group(1)  "]");      Console.WriteLine("Group2=["  m1.Group(2)  "]");          // Line of at least 80 chars      string t4 = "********************"          "******************************"          "******************************";      string p4 = ".{80,}";      Match m4 = Regex.Match(t4, p4);      Console.WriteLine("if line >= 80 is = "  m1.Success  "]");          // MM/DD/YY HH:MM:SS      string t5 = "01/01/01 16:10:01";      string p5 = @"(\d )/(\d )/(\d ) (\d ):(\d ):(\d )";      Match m5 = Regex.Match(t5, p5);      Console.WriteLine("M5="  m5);      for (int i = 1; i <= 6; i  )        Console.WriteLine("Group"  i  "=["  m5.Group(i)  "]");          // Changing directories (for Windows)      string t6 = @"C:\Documents and Settings\user1\Desktop\";      string r6 = Regex.Replace(t6, @"\\user1\\", @"\\user2\\"); // ";          // expanding (%nn) hex escapes      string t7 = "A";      string p7 = "%([0-9A-Fa-f][0-9A-Fa-f])";      string r7 = Regex.Replace(t7, p7, HexConvert);      Console.WriteLine("R7="  r7);          // deleting C comments (imperfectly)      string t8 = @"  /*  * this is an old cstyle comment block  */  foo();  ";      string p8 = @"    /\*  # match the opening delimiter    .*?    # match a minimal numer of chracters    \*/    # match the closing delimiter  ";      string r8 = Regex.Replace(t8, p8, "", "xs");      Console.WriteLine("r8=" r8);          // Removing leading and trailing whitespace      string t9a = "    leading";      string p9a = @"^\s ";      string r9a = Regex.Replace(t9a, p9a, "");      Console.WriteLine("r9b="  r9a);          string t9b = "trailing    ";      string p9b = @"\s $";      string r9b = Regex.Replace(t9b, p9b, "");      Console.WriteLine("r9b="  r9b);          // turning \ followed by n into a real newline      string t10 = @"\ntest\n";      string r10 = Regex.Replace(t10, @"\\n", "\n");      Console.WriteLine("r10="  r10);          // IP address      string t11 = "55.54.53.52";      string p11 = "^"          @"([01]?\d\d|2[0-4]\d|25[0-5])\."          @"([01]?\d\d|2[0-4]\d|25[0-5])\."          @"([01]?\d\d|2[0-4]\d|25[0-5])\."          @"([01]?\d\d|2[0-4]\d|25[0-5])"          "$";      Match m11 = Regex.Match(t11, p11);      Console.WriteLine("M11="  m11);      Console.WriteLine("Group1="  m11.Group(1));      Console.WriteLine("Group2="  m11.Group(2));      Console.WriteLine("Group3="  m11.Group(3));      Console.WriteLine("Group4="  m11.Group(4));          // removing leading path from filename          string t12 = @"c:\file.txt";      string p12 = @"^.*\\";      string r12 = Regex.Replace(t12, p12, "");      Console.WriteLine("r12="  r12);          // joining lines in multiline strings      string t13 = @"this is  a split line";      string p13 = @"\s*\r?\n\s*";      string r13 = Regex.Replace(t13, p13, " ");      Console.WriteLine("r13="  r13);          // extracting all numbers from a string      string t14 = @"  test 1  test 2.3  test 47  ";      string p14 = @"(\d \.?\d*|\.\d )";      MatchCollection mc14 = Regex.Matches(t14, p14);      foreach (Match m in mc14)        Console.WriteLine("Match="  m);          // finding all caps words      string t15 = "This IS a Test OF ALL Caps";      string p15 = @"(\b[^\Wa-z0-9_] \b)";      MatchCollection mc15 = Regex.Matches(t15, p15);      foreach (Match m in mc15)        Console.WriteLine("Match="  m);          // find all lowercase words      string t16 = "This is A Test of lowercase";      string p16 = @"(\b[^\WA-Z0-9_] \b)";      MatchCollection mc16 = Regex.Matches(t16, p16);      foreach (Match m in mc16)        Console.WriteLine("Match="  m);          // find all initial caps      string t17 = "This is A Test of Initial Caps";      string p17 = @"(\b[^\Wa-z0-9_][^\WA-Z0-9_]*\b)";      MatchCollection mc17 = Regex.Matches(t17, p17);      foreach (Match m in mc17)        Console.WriteLine("Match="  m);          // find links in simple html      string t18 = @"      first tag text  next tag text      ";      string p18 = @"]*?HREF\s*=\s*[""']?([^'"" >] ?)[ '""]?>";      MatchCollection mc18 = Regex.Matches(t18, p18, "si");      foreach (Match m in mc18)        {        Console.WriteLine("Match="  m);        Console.WriteLine("Group1="  m.Group(1));        }          // finding middle initial      string t19 = "Hanley A. Strappman";      string p19 = @"^\S \s (\S)\S*\s \S";      Match m19 = Regex.Match(t19, p19);      Console.WriteLine("Initial="  m19.Group(1));          // changing inch marks to quotes      string t20 = @"2' 2"" ";      string p20 = "\"([^\"]*)";      string r20 = Regex.Replace(t20, p20, "``$1''");      Console.WriteLine("Result="  r20);          }        static int[] hexval = new int[128];    static Test()      {      InitHex();      }    static void InitHex()      {      hexval['0'] = 0;      hexval['1'] = 1;      hexval['2'] = 2;      hexval['3'] = 3;      hexval['4'] = 4;      hexval['5'] = 5;      hexval['6'] = 6;      hexval['7'] = 7;      hexval['8'] = 8;      hexval['9'] = 9;      hexval['A'] = 10;      hexval['B'] = 11;      hexval['C'] = 12;      hexval['D'] = 13;      hexval['E'] = 14;      hexval['F'] = 15;      hexval['a'] = 10;      hexval['b'] = 11;      hexval['c'] = 12;      hexval['d'] = 13;      hexval['e'] = 14;      hexval['f'] = 15;      }    static MatchEvaluator HexConvert = new MatchEvaluator(Hex);    static string Hex(Match m)      {      string s = m.Group(1).ToString();      int i0 = hexval[s[0]];      int i1 = hexval[s[1]];      string r = new string((char)((i0 << 4) | i1),1);      return r;      }            }    (2005-8-09:05:37)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [RegExp] 的这些文章也感兴趣:

最专业的正则表达式网站regexlib.com使用说明  RegularExpressionstoremoveorreplace
正则表达式详解  正则表达式使用详解及实例
程序员必须掌握的基本正则表达式  解读C#中的正则表达式
转贴:不得不看的正则表达式详解  如何过滤掉html字符(c#)
寻找匹配的Groups的几种方法  实用正则表达式收集
正则式中的实用命名组替换  常用正则表达式
正则表达式  用正则表达式解析C#文件
C#正则表达式应用范例  深入浅出之正则表达式(二)
提取HTML代码中文字的C#函数  几个常用的用正则表达式验证字符串的函数
someoftheregularexpressionslistedinthePerlCookBook  两个分析HTML网页的方法