常用正则表达式 捕获组(分组)

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>\d\d))

 

814286-20180111123930238-883152136.png

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

匹配结果为:

编号

命名

捕获组

匹配内容

0

 

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

2008-12-31

1

year

(?<year>\d{4})

2008

2

date

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

12-31

3

day

(?<day>\d\d)

31

 

 

 

 814286-20180110175418660-1000332877.jpg

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值