zoukankan      html  css  js  c++  java
  • 正则表达式应用

    替换时引用匹配到的值 $1表示第1个小括号的内容,$2表示第2个小括号的内容

    Regex.Replace(str, @"((([a-z]|[A-Z])+))", " $1 ")

    根据分组下标取值(match.Groups[0]是整个正则匹配到的值,之后按照分组左括号顺序)

                var matchs1 = Regex.Matches(text, @"((S+)://(S+))");
                foreach (Match match in matchs1)
                {
                    Console.WriteLine(string.Format("网址:{0} 网址:{1} 协议:{2} 域名:{3}", match.Value, match.Groups[1], match.Groups[2], match.Groups[3]));
                    //match.Groups[0]和match.Value的结果一样
                    Console.WriteLine(string.Format("网址:{0} 网址:{1} 协议:{2} 域名:{3}", match.Groups[0], match.Groups[1], match.Groups[2], match.Groups[3]));
                }
    

    根据分组名取值

                var matchs2 = Regex.Matches(text, @"(?<protocol>S+)://(?<address>S+)");
                foreach (Match match in matchs2)
                {
                    Console.WriteLine(string.Format("网址:{0} 协议:{1} 域名:{2}", match.Value, match.Groups["protocol"], match.Groups["address"]));
                }
    

    测试:获取超链接中的链接和文本

                string s = "111<a href="http://www.baidu.com">百度</a>222";
                var match = Regex.Match(s, "<a[^>]+href="(?<href>[^"]*)">(?<text>[\s\S]*)</a>");
                Console.WriteLine(match.Groups[0].Value);
                Console.WriteLine(match.Groups[1].Value);
                Console.WriteLine(match.Groups[2].Value);
                Console.WriteLine();
                Console.WriteLine(match.Value);
                Console.WriteLine(match.Groups["href"].Value);
                Console.WriteLine(match.Groups["text"].Value);
    
  • 相关阅读:
    StructureMap经典的IoC/DI容器
    移植的7zip到Vxworks 取名vx7zip
    试验Boost在Vxworks上的应用日记 三
    Log4cpp 崩溃
    试验Boost在Vxworks上的应用日记 一
    Vx7zip改进
    GoAhead 2.5 Web Server 网页ROM化的改进
    试验Boost在Vxworks上的应用日记 二
    原来CoreBluetooth 只支持Bluetooth Low Energy
    可变长结构体
  • 原文地址:https://www.cnblogs.com/yinchh/p/11661693.html
Copyright © 2011-2022 走看看