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))
用以上正則表達式匹配字符串: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
|
D6B2C47B-427D-4BA0-8A89-FD01FB6D2611 From:http://www.cnblogs.com/xuejianxiyang/p/8256844.html