第一个答对的给分,随便请高手告诉我,看哪一个篇文章能了解这个$的用法(baidu把这个$过滤了查不到)

解决方案 »

  1.   

    表示正则表达式中第一个匹配,就是用()围起来的那部分正则表达式
    如果一个表达式中有2个()的匹配则
    第一个是$1第二个是$2
    以此类推
    有点类似于string.fromat中的{0}
      

  2.   

    $0到$9对应表示正则表达式中第n个匹配项,$0是指全部匹配内容 
    urlregex.Replace(strContent,$0);//使用后的结果和原来是一样的$1到$9一般是正则表达式中第几个小括号内的匹配内容。如果你的正则表达式里没有小括号,那么$1到$9不会被换掉。具体含义可以看“正则表达式”相关书
      

  3.   

    MSDN里的原话:$number 替换由组号 number(十进制)匹配的最后一个子字符串。 楼主可以直接去查MSDN
      

  4.   

    正则在某一程度来讲,还是要加进自己的理解的,正则的文章很多,但基本上讲的都很晦涩难懂就个人理解和使用正则的经验来讲,“$”在正则中有四种用途第一种用途,在正则表达式中,\$用来匹配“$”字符本身第二种用途,在正则表达式中,$与字符串结束的地方匹配,不匹配任何字符第三种用途,就是楼主所给例子中,是对匹配结果中捕获组内容的引用,引用的方式有两种
    一种是对普通捕获组的引用,格式为“$number”,此处的number为10进制数,并不局限于0-9,其中的“$0”指匹配结果的全部内容,其它的如“$15”为第15个捕获组所匹配的内容另一种是对命名捕获组的引用,格式为“${content}”至于捕获组的概念,可以查阅相关文章,简单点理解,就是非零宽度断言的(),也就是正则中可以匹配到内容的()举例说明就是用如下正则
    <a\s+href=(?<link>[^\s]*?)\s*>(.*?)</a>
    来匹配下面字符串
    <a href=http://www.baidu.com >百度</a>
    我们可以用“${link}”或者“$1”来得到(?<link>[^\s]*?)这一命名捕获组所匹配的字符串
    http://www.baidu.com
    而用“$2”来得到(.*?)这一捕获组所匹配的字符串“百度”应用举例1
    string yourStr = richTextBox1.Text;
    Match m = Regex.Match(yourStr, @"<a\s+href=(?<link>[^\s]*?)\s*>(?<name>.*?)</a>");
    richTextBox2.Text = m.Result("$1")+"\n";
    richTextBox2.Text += m.Result("${link}") + "\n";
    richTextBox2.Text += m.Result("$2");应用举例2
    string yourStr = richTextBox1.Text;
    richTextBox2.Text = Regex.Replace(yourStr, @"<a\s+href=(?<link>[^\s]*?)\s*>(?<name>.*?)</a>", "$2");
    第四种用途,用作转义,就是在上例中,如果要替换的结果中含有“$”,比如我想得到的结果为“$百度$”,那么就要“$$”这样写来得到“$”字符本身string yourStr = richTextBox1.Text;
    richTextBox2.Text = Regex.Replace(yourStr, @"<a\s+href=(?<link>[^\s]*?)\s*>(?<name>.*?)</a>", "$$$2$$");
      

  5.   

    $+数字 表示REGEX里的分组 
    在使用REGEX时 用一对垮号就表示添加一个分组 在REGEX替换的时候用$表示捕获到的结果的分组
    相当于.Group[分组索引].value
      

  6.   

    楼主去找个正则匹配的校验工具 MTracer
    用一下就明白了。
      

  7.   


    查看你自己机器上的msdn,“.net framework正则 替换表达式”。那是替换的最简单写法。
      

  8.   

    可以这么理解。不过C#中一般不这么用,给你写段 string strMtitle = 正则表达式
                MatchCollection LrcMatches = Regex.Matches(strLrcUrl, strMtitle, RegexOptions.IgnoreCase | RegexOptions.Compiled);
                ArrayList arr = new ArrayList();
                foreach (Match mm in LrcMatches)
                {
                    strLrcUrlText = mm.Groups["url"].Value.ToString().Trim();
                    arr.Add(strLrcUrlText);
                }
      

  9.   

    $group   用group指定的组号替换,该组号是捕获组的序号,从1开始
    ${name}  替换由(?<name>)匹配的最后一个字串
    $$       替换字符$
    $&       替换整个的匹配
    $`       替换输入字符串在匹配前的所有文本
    $'       替换输入字符串在匹配后的所有文本
    $+       替换最后捕获的组
    $_       替换整个的输入字符串