zoukankan      html  css  js  c++  java
  • 常用正则表达式 捕获组(分组)

    1.img标签

    //<img开头,中间不包含<或>,空格后src以'或"开始.....

    Regex reg = new Regex("<img[^<>]*\ssrc=(['"]+[^<>'"]+['"]+)[^<>]*>", RegexOptions.IgnoreCase);
    MatchCollection mc = reg.Matches(html);

    foreach (Match m in mc)
    {
    var src= m.Groups[1].Value;

    }

    2.textarea标签内容

    string text = "<textarea id='ta1' .*>111</textarea>";// this.txt_RplayContenet.Text;

    Regex reg = new Regex("<textarea id='(.+)' .*>(.*)</textarea>", RegexOptions.IgnoreCase);
    var match=reg.Match(text); //只返回第一个匹配的
    if (match.Success)
    {
    var id = match.Groups[1].Value; //ta  //括号分组,默认正则匹配到的字符串是group[0],第一个括号group[1],第二个括号group[2]
    var content = match.Groups[2].Value; //111
    }

    3.命名捕获组编号规则

    (https://www.cnblogs.com/pmars/archive/2011/12/30/2307507.html)

    命名捕获组通过显式命名,可以通过组名方便的访问到指定的组,而不需要去一个个的数编号,同时避免了在正则表达式扩展过程中,捕获组的增加或减少对引用结果导致的不可控。

    不过容易忽略的是,命名捕获组也参与了编号的,在只有命名捕获组的情况下,捕获组的编号也是按照“(”出现的顺序,从左到右,从1开始进行编号的。第0个返回匹配到的整个字符串.

    正则表达式:(?<year>d{4})-(?<date>d{2}-(?<day>dd))

    用以上正则表达式匹配字符串:2008-12-31

    匹配结果为:

    编号

    命名

    捕获组

    匹配内容

    0

     

    (?<year>d{4})-(?<date>d{2}-(?<day>dd))

    2008-12-31

    1

    year

    (?<year>d{4})

    2008

    2

    date

    (?<date>d{2}-(?<day>dd))

    12-31

    3

    day

    (?<day>dd)

    31

     

    D6B2C47B-427D-4BA0-8A89-FD01FB6D2611 From:http://www.cnblogs.com/xuejianxiyang/p/8256844.html

  • 相关阅读:
    VIM的强大功能
    BigDecimal.ROUND_HALF_XXX的各种用法
    拒绝服务攻击
    浅谈(接口)测试注意事项四
    jmeter 与 java http
    Xms Xmx PermSize MaxPermSize 区别
    Jquery过滤器
    JQ工具函数运用
    C#扩展方法
    LINQ TO XML基础
  • 原文地址:https://www.cnblogs.com/xuejianxiyang/p/8256844.html
Copyright © 2011-2022 走看看