2012-05-06 9 views
2

re apiを使用してテキストファイルからURLを抽出しようとしました。 http://、https://、およびwwwで始まるリンク。正規表現を使用したURLリンクの抽出re-string matching - Python

ファイルにはテキストとHTMLソースコードが含まれています.Html部分はBeautifulSoupを使用して抽出できるので簡単ですが、通常のテキストは難しいようです。 これはURL抽出の最適な実装であるように見えますが、特定のタグでは失敗します。特にタグを処理できず、URLにそれらを含めます。 任意のヘルプは、私はすべての文字列マッチングに慣れていないだから自分がここに

、感謝署名が

sp1=re.findall("http[s]?://(?:[a-zA-Z]|[0-9]|[[email protected]&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+", str(STRING)) 
sp2=re.findall('www.(?:[a-zA-Z]|[0-9]|[[email protected]&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', str(STRING)) 

例です:

http://www.website.com/science/</span></a><o:p></o:p></span></div><div 
www.website.com/library/</span></a></span></i><span 
http://awebsite.com/Groups</a><div> 

答えて

6
re.findall(r'https?://[^\s<>"]+|www\.[^\s<>"]+', str(STRING)) 

[^\s<>"]+部分がいずれかと一致非引用符、非引用符、非アングルブラケット文字を使用して一致する文字列を避けます。

<a href="http://www.example.com/stuff"> 
http://www.example.com/stuff</br> 
+0

素晴らしい、作品はチャンピオンのようです:) ..おかげで仲間 – Eternity

関連する問題