次の正規表現を理解しようとしていますが、正しく理解できないようです。誰かが私にアドバイスできますか?
一言で言えば、私は次のようなhtmlStringを持っています:
htmlString = "<HTML><HEAD></HEAD><BODY>Here are some images.</br>1) <IMG style='MARGIN-BOTTOM: 20px; MARGIN-LEFT: 20px' align=right src='images/sample001.jpg'>2) <IMG style='MARGIN-BOTTOM: 25px; MARGIN-LEFT: 25px' align=right src='images/sample002.png'></br> And some docs as well.</br>1) href='javascript:parent.POPUP({url:'testDoc001.htm',type:'shared',width:600,height:645})'></br>2) href='javascript:parent.POPUP({url:'testDoc002.html',type:'shared',width:700,height:712})'></br></BODY></HTML>";
これは、C#、WPFで次のルーチンを実行します。
private static List<string> ExtractData(string htmlString)
{
List<string> data = new List<string>();
//*** Get The Images ***
string pattern = @"<img .* src='(.+\.(jpg|bmp|png))'";
Regex rgx = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = rgx.Matches(htmlString);
for (int i = 0, l = matches.Count; i < l; i++)
{
data.Add(matches[i].Value);
}
//*** Get Html Pages ***
pattern = @"url:'([^']*)'";
rgx = new Regex(pattern, RegexOptions.IgnoreCase);
matches = rgx.Matches(htmlString);
for (int i = 0, l = matches.Count; i < l; i++)
{
data.Add(matches[i].Value);
}
return data;
}--------------------------------------------------------------------------------------
そして私が得る結果は次のとおりです:
[0] = "<IMG style ='MARGIN-BOTTOM:20px; MARGIN-LEFT:20px' align = right src ='images / sample001.jpg'> 2)<IMG style ='MARGIN-BOTTOM:25px; MARGIN-左:25px'align = right src ='images / sample002.png'"
[1] = "url:'testDoc001.htm'"
[2] = "url:'testDoc002.html'"
私が本当に欲しいのは:
[0] = "images / sample001.jpg"
[1] = "images / sample002.png"
[2] = "testDoc001.htm"
[3] = "testDoc002.html"
正規表現で間違っていることを誰かに教えてもらえますか?
ありがとう