[英]RegEx to Parse URL from text (text Contains HTML tags)
我想解析給定文本中的網址,
輸入文本:-
<h3 class="r"> <a
href="/url?q=http://rakesh.agrawal-family.com/papers/vldbj03watermark.pdf&sa=U&ei=m2laUfD2AdDorQf0rYHoDw&ved=0CBoQFjAA&usg=AFQjCNFJOQCS471sWjxy5CkNbzDxzcD66A">
<h3 class="r"> <a
href="/url?q=http://www.cse.ust.hk/vldb2002/VLDB2002-proceedings/papers/S05P03.pdf&sa=U&ei=m2laUfD2AdDorQf0rYHoDw&ved=0CCIQFjAD&usg=AFQjCNHbfCk_51dKLupvs3KVVEDboK54xg">
<h3 class="r"> <a
href="/url?q=http://cvml.unige.ch/publications/postscript/99/VoloshynovskiyPereiraPun_eww99.pdf&sa=U&ei=m2laUfD2AdDorQf0rYHoDw&ved=0CCYQFjAE&usg=AFQjCNGt54TSNY93PXgd4u4L3-E6C6P2jw">
預期產量:
http://rakesh.agrawal-family.com/papers/vldbj03watermark.pdf
http://www.cse.ust.hk/vldb2002/VLDB2002-proceedings/papers/S05P03.pdf
http://cvml.unige.ch/publications/postscript/99/VoloshynovskiyPereiraPun_eww99.pdf
示例代碼:-
Match match = Regex.Match(input, @"<h3 class=""r""> <a href=""/url\?q=(.*?)&", RegexOptions.IgnoreCase);
while (match.Success)
{
// Finally, we get the Group value and display it.
string key = match.Groups[1].Value;
Console.WriteLine(key);
match = match.NextMatch();
請注意,不建議將HTML和正則表達式混合使用。
但是,如果您正在尋找快速的技巧,則可以使用以下正則表達式:
url\?q=\*\*[\'"]?([^\'" >]+)\*\*
在這里檢查此鏈接: http : //rubular.com/r/v0jqtAXMF9
RegExs構建DFA,因此非常昂貴,如果您需要從已知模式中提取數據,則可以使用它,
url=line[i].substring(line[i].indexOf("q=")+1, line[i].indexOf(">\""));
基本上使用線性搜索索引而不是復雜的DFA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.