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