zoukankan      html  css  js  c++  java
  • C#中正则表达式的高级应用

    1。在正则表达式中定义变量并调用:

    using System; using System.Text.RegularExpressions;
    publicclass Test {
       
    publicstaticvoid Main ()     {
           
    // Define a regular expression for repeated words.        Regex rx =new Regex(@"\b(?<word>\w+)\s+(\k<word>)\b",           RegexOptions.Compiled | RegexOptions.IgnoreCase);
           
    // Define a test string.                string text ="The the quick brown fox  fox jumped over the lazy dog dog.";                 // Find matches.        MatchCollection matches = rx.Matches(text);
           
    // Report the number of matches found.        Console.WriteLine("{0} matches found.", matches.Count);
           
    // Report on each match.        foreach (Match match in matches)         {             string word = match.Groups["word"].Value;             int index = match.Index;             Console.WriteLine("{0} repeated at position {1}", word, index);           }             }     }
    其中?<word>定义了一个变量,之后的\k<word>调用自身定义的变量word。
    2。好用的Regex.Replace 和Match.Result
    这个例子实现输入的日期更改格式的功能,用正则表达式自动搜索字符串并替换,注意正则表达式中变量的使用。
    publicstring MDYToDMY(string input) { return Regex.Replace(input, "\\b(?<month>\\d{1,2})/(?<day>\\d{1,2})/(?<year>\\d{2,4})\\b", "${day}-${month}-${year}"); }
    Match.Result是返回一个可以带正则表达式中变量值的字符串。
    publicstring Extension(string url) { Regex r =new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/", RegexOptions.Compiled); return r.Match(url).Result("${proto}${port}"); }

    正则式官方详解:

    http://msdn.microsoft.com/zh-cn/library/ae5bf541.aspx

  • 相关阅读:
    struts1:(Struts)ActionForm类及表单数据验证
    前端基础
    JavaScript 开发进阶:理解 JavaScript 作用域和作用域链
    vue+webpack一些知识
    gulp简单使用小记
    如何在Github Pages搭建自己写的页面?
    十大名茶
    中国六大茶类
    从零开始用gulp
    15 个有趣的 JavaScript 与 CSS 库
  • 原文地址:https://www.cnblogs.com/houzhitong/p/2398735.html
Copyright © 2011-2022 走看看