友情链接:.NET项目开发者博客

正则表达式(二)

贪婪模式:当出现限定符+、?、*、{n,}类似这样的限定符时,正则表达式会默认会可能多的进          行匹配,这种方式叫做“贪婪模式”
在限定符后加?就表示“终止贪婪模式”终止贪婪模式意味着尽可能少的匹配。


环视也是断言(只判断,不匹配)的一种,环视本身不予匹配。
环视有四种:写法是:
(?=)肯定正向环视
  (?<=)肯定逆向环视
(?<!)否定逆向环视
在正向环视的时候()不参与分组。
正则表达式是来操作字符串的,会用但是不要滥用。
例如:
  将张三:18999141265李四:13111111111王五:13488888888电信:10000移动:10086联通:10010工行:95588传智播客010-82935100传智播客:010-82935150字符串中的电话号码匹配出来:
            string s = "张三:18999141265李四:13111111111王五:13488888888电信:             10000移动:10086联通:10010工行:95588,010-82935100:010-82935150";
            MatchCollection  matches = Regex.Matches(s,@"(?<!\d)\d{5}(?!\d)");
            foreach (Match match in matches)
            {
                Console.WriteLine(match.Value );
            }
            Console.ReadKey();
            #endregion


反向引用引用的也是正则表达式的分组信息。反向引用分组信息是在正则表达式内部进行“引用组”
例如:将" 我...我我..我我我我....爱爱爱..爱..爱...你你...你..你你你..."变成“我爱你”
          string s = "我...我我..我我我我....爱爱爱..爱..爱...你你...你..你你你...";
          s = s.Replace(".",string.Empty );
          s = Regex.Replace(s,@"(.)\1+","$1");
          Console.WriteLine(s);
          Console.ReadKey();

posted @ 2013-03-17 01:50  千年老妖  Views(316)  Comments(0Edit  收藏  举报
友情链接:.NET项目开发者博客