2017-02-07 7 views
-1

ソースコードからURLを抽出しようとしています。ソースコードは、私がこれまで(?<=<h4\ class="a"><a\ href=")http://.*ですが、これはまだURLのみを抽出していないに達したものを、次のRegex:テキストで囲まれたURLを抽出する

text text text<h4 class="a"><a href="http://site1.com/url/" onmousedown="return rwt(this,'','','','15',111','','0333','','',home)">...</a></h4> 

に似ています。出力はhttp://site1.com/url/にする必要があります。

ありがとうございます!

+1

htmlの解析にregexの代わりにdomまたはxmlパーサを使用する – baao

答えて

1

コメントがついていますので、regexの代わりにdomまたはxml/htmlパーサーを使用してください。あなたは、ブラウザでこれを行うにはしたくない場合は

var s = `text text text<h4 class="a"><a href="http://site1.com/url/" onmousedown="return rwt(this,'','','','15',111','','0333','','',home)">...</a></h4> 
 
`; 
 

 
var e = document.createElement('div'); 
 
e.innerHTML = s; 
 
Array.from(e.getElementsByTagName("a")).forEach(link => { 
 
    console.log(link.href); 
 
})

、HTMLや他の環境

ために利用可能なXMLパーサーもあります:ブラウザでは、JavaScriptを使用していることを行うことができます
0

キャプチャグループは、このようなタスク用に設計されていますが、HTMLの解析に正規表現を使用するのは悪い方法です。一致させる必要があるのは、ここで指定した接頭辞とURLです(正式なHTML(表示されたテキストに適切にエスケープされたHTML)があることが保証されています)。次に使用できる正規表現は

/<h4 class="a"><a href="([^"]+)"/ 

https://regex101.com/r/skfhTm/1

最初のキャプチャグループにはURLが含まれています。

関連する問題