日期:2014-05-19  浏览次数:20812 次

再求URL正则表达式
要提取html页中的图片提示内容(不管它为不为空)     <img   alt= "hello,this   is   test!   012 "     只提取它的   hello,this   is   test!   012   这样的说明文字  


http://www.test.com/scripts/index.php?tn=1&amp;ke=leqgwate

http://afedt.net/scripts/index.php?TN=5&KE=afsedfge

提取url的正则要可以提取任何一网址的形式   比如它也要能提取  

http://45sadfedsafe.bz/scripts/index.php?TN=7&KE=afedtegth

大家帮帮我




------解决方案--------------------
看楼主怎么用了,不同的用法可以有不同的写法,你现在这样问,那就写个通用的吧

图片提示内容
(? <= <img[^> ]*?alt= ")[^ "]*?(?= ")

url的
http://(\w+\.)?\w+\.\w+/scripts/index\.php\?(tn|TN)=\d+&(amp;)?(ke|KE)=\w+
当然如果用在程序中,就可以指定RegexOptions.IgnoreCase,就不用这样写了
MatchCollection mc = Regex.Matches(yourStr, @ "http://(\w+\.)?\w+\.\w+/scripts/index\.php\?tn=\d+&(amp;)?ke=\w+ ", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[0].Value + "\n ";
}

当然,如果你想提取的是所有的网址,并不局限于你所举的例子,可以这样
MatchCollection mc = Regex.Matches(yourStr, @ "http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)? ", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
richTextBox2.Text += m.Groups[0].Value + "\n ";
}
------解决方案--------------------
(? <= <table> )([\s\S]*?)(?= <br> <br> )