2016-07-10 16 views
-1

私はPythonの初心者です。私はgitHubのリポジトリに行きました。次のコード行がウェブページからすべてのURLを抽出するのを見ました。正規表現とグループを理解していますが、一重引用符で囲まれた余分な二重引用符がある理由を理解できません。再表記の中の一重引用符で囲まれた二重引用符(Python)

links = re.findall('"((http|ftp)s?://.*?)"', html) 

つまり、次のコードとどのように違うのですか?

links = re.findall('((http|ftp)s?://.*?)', html) 

私が試してみましたし、最初の一つだけが正しくURL構文と一致したが、二番目にはないことがわかりました。しかし、なぜ私は理解していない。

何か助けていただければ幸いです。

ありがとうございます。

+0

http://pythex.org/で試してみてください。あるいは、いくつかのテスト文字列を作成し、インタプリタで試してみてください。 – wwii

+0

パターンが何をするかを見るのに最も良いツールは[regex101.com](http://regex101.com)です。 –

+0

私の質問の重複は見つかりません。正確なリンクを教えてください。 @WiktorStribiżew – nilanjanaLodh

答えて

1

二重引用符は正規表現の一部です。パターンが実際に引用符で囲まれている場合のみパターンが一致することを保証します。 foo bar http://whatever.comは一致しませんが、<a href="http://whatever.com">となります。

これは本当に壊れやすい方法ですが、一重引用符もHTMLでは有効ですが、正規表現とは一致しないため注意が必要です。

+0

ありがとう。これは私の質問に答えた:) – nilanjanaLodh

関連する問題