したがって、いくつかのlulzのために、友人と私は、親ドメインのみを取得するためにURLのリスト(100k +)をフィルタリングするアイデアを演奏していました| org | etc ")。唯一注意しなければならないのは、それらがすべていいとは言えず、形式が一致していないということです。矛盾したURLフィルタリングのための正規表現の正確さ/簡潔さを改善する
説明すると、「http://www.domain.com/urlstuff」、「www.domain.co.uk/urlstuff」のような国コードがあるものもあれば、「hello.in」と似ているものもあります。 con.sistent.urls.com/urlstuff "
import re
firsturl = 'www.foobar.com/fizz/buzz'
m = re.search('\w+(?=(\..{3}/|\..{2}\..{2}/))\.(.{3}|.{2}\..{2})', firsturl)
m.group(0)
返します:
foobar.com
をそれは戻って、その後、URLの末尾に "/" 最初を調べ
ので、脇の話、私は働く正規表現を持っています二つ "。"その前に区切られたフィールド。
私のクエリでは、スタックハイブの人は、より良い/より短い正規表現、または "/"の前方参照に依存しない正規表現でどのように行うことができるかについての知恵を持っていますか?文字列?
これですべての助けに感謝!これが唯一の'http://'
せずに動作すること、しかし、
import re
firsturl = 'www.foobar.com/fizz/buzz'
domain = re.match("(.+?)\/", firsturl).group()
お知らせ:
本当に 'regex'を使用する必要がありますか? –
多くの問題と同様、多くの解決策があります。 Pythonでは、文字列を繰り返し、区切り文字( "。")で区切って、必要なものをまとめていくのは簡単でpythonです。だから、私はそれが正規表現の外で簡単に行うことができることを知っていますが、正規表現のコンテキストで私はそれが私が持っているものよりも良いことができるかどうか不思議です。 – RedBarron