首页 > Windows开发 > 详细

[c#.Net]正则表达式 记录

时间:2016-03-05 16:20:18      阅读:199      评论:0      收藏:0      [点我收藏+]
  1. @符号
    c#字符串前使用@符号,“@”表示,跟在它后面的字符串是个“逐字字符串”。
    string x="D:\\My Huang\\My Doc";
    string y = @"D:\My Huang\My Doc";
    等效
  2. 基本语法
    \d   0-9数字
    \D   \d的补集,即所有非数字的字符
    \w   单词字符,包括:大小写字符,0-9数字,下划线
    \W   \w的补集
    \s   空白字符
    \S   \s的补集
    .     除换行符\n外的所有字符
    [...]  匹配[]内列出的所有字符
    [^...] 匹配非[]内列出的所有字符
    (...)   匹配组合,记录
    (?:...)  匹配组合,非记录

  3. 定位
    ^    字符串开始
    $     字符串结束
    \b   匹配一个单词的边界
    \B   匹配一个非单词边界
  4. 重复描述字符
    {n}   匹配前面的字符n次
    {n,}    匹配前面的字符大于等于n次
    {n,m}  匹配前面的字符n到m次
    ?   0到1次
    +   1到多次
    *   0到多次
  5. 组与非捕获组
    正则表达式引擎会记忆"()"中匹配到的内容,作为一个组,并且可以通过索引的方式进行引用。表达式中的"\1",用于反向引用表达式中出现的第一个组
     1 string x = "Find somebody to love me, Find somebody to love";
     2 Regex r = new Regex(@"^Find ([a-z]{8}) to ([a-z]{4}) me, Find \1 to \2$");
     3 // r.Matches(x).Count --> 1
     4 // Groups[0]是整个匹配的字符串,Groups[1]是组内的内容
     5 // r.Matches(x).Groups[1].Value --> somebody
     6 
     7 Regex r2 = new Regex(@"^Find (?<group1>[a-z]{8}) to ([a-z]{4}) me, Find \1 to \2$");
     8 // r2.Matches(x).Groups["group1"].Value
     9 
    10 string y = "Find somebody somebody";
    11 regex r3 = new Regex(@"(?<g1>[a-z]+) \1");
    12 if (r3.IsMatch(y))
    13 {
    14     y = r3.Replace(y, "${g1}");
    15 }
  6. 贪婪与非贪婪
    在*,+符号后添加?,可以将匹配模式改成非贪婪
  7. 忽略大小写
    Regex reg = new Regex(regPattern, RegexOptions.IgnoreCase);

     

[c#.Net]正则表达式 记录

原文:http://www.cnblogs.com/bicker/p/5244987.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!