スポンサーリンク

python 正規表現でURLの一致チェック、抽出を行う

URLの正規表現パターンの解説

URLを正規表現のパターンとして表す時、下記のようになる。

https?://[\w/:%#\$&\?\(\)~\.=\+\-]+”

先頭から解説していきます。

https?

https?はhttpは必ず先頭につき、s?でsが0~1回の繰り返しという意味の為、

http or https が先頭のものを意味します。

://

://はそのまま、http or httpsの次に必ず続く文字列で、それに一致するかどうかチェックします。

[\w/:%#$&\?\(\)~\.=\+\-]+

1つずつ解説していきます。[・・・]+は、[]内にある文字の1回以上の繰り返しを意味します。
[]の中身ですが、\wは半角英数字と_を表します。ほかの\○は、○の文字を意味します。
[]内の中身が、http://以降の文字として使われるので、それを正規表現で表しています。

一致チェック

文字列がURLかどうかを、
正規表現を使ってチェックします。

サンプルコード

 

実行結果

Is URL:https://qiita.com/
Not URL:ftp://hogehoge.com
Is URL:http://e-words.jp/

解説

re.match()で正規表現にマッチするかを判断しています。
urlがpatternにマッチしていると、オブジェクトを返し、
マッチしていないなら、Noneを返します。

URL抽出

文字列に含まれたURLを正規表現を使って全て抽出します。

サンプルコード

実行結果

[‘https://qiita.com/‘, ‘https://ja.wikipedia.org/wiki/Python‘]

解説

re.findallは、文字列の中から、正規表現にマッチした文字列をリストにして全て取り出します。
このやり方は、スクレイピンなどでもよく使われるので覚えておくとよいです。

Python
スポンサーリンク
シェアする
trelab