2017-11-24 21 views
0

私は次の正規表現\ssrc=(\"|\')([^\"|\']+)(\"|\')を持っています。これはソースコード内の画像にスクレイプWebサイトを使用しています。私が欲しいの画像は、次の形式である:PythonでRegexが期待通りに表示されない

<img src="http://www.asite.com/content/icon_clown.gif"

<img src='essays.gif'

<img src="monty-python-(1).bmp"

<img src="gchq-certified.jpg"

私の正規表現はthemsを見つけたが、それらを表示します。

('"', 'http://www.asite.com/content/icon_clown.gif', '"')

("'", 'essays.gif', "'")

('"', 'monty-python-(1).bmp', '"')

('"', 'gchq-certified.jpg', '"')

それらは次のように表示したいイム:

http://www.asite.com/content/icon_clown.gif

Iは、上に示した全ての4つの画像ソースと一致する正規表現を必要とします。

誰かが正しい方向に私を指すことができればそれはすばらしいでしょう。

+0

あなたは全体のサンプルコードを追加する必要があります - だけではなく、データを。 –

答えて

0

あなたの正規表現には3つのグループ、(..)が含まれています。結果のインデックス2(すべて0、最初のグループ化1など)にアクセスするか、中間部分の周りにのみ()を使用して、中間結果を得ることができます。

など。以下のような:

x = "<img src=\"http://www.asite.com/content/icon_clown.gif\"" 

results = re.search("src=(\"|\')([^\"|\']+)(\"|\')",x) 

print(results.group(2)) 

出力:

'http://www.asite.com/content/icon_clown.gif' 

EDIT:

import re 

x = "<img src=\"http://www.asite.com/content/icon_clown.gif\"" \ 
    "<img src=\'essays.gif\'" \ 
    "<img src=\"monty-python-(1).bmp\"" \ 
    "<img src=\"gchq-certified.jpg\"" 

results = re.findall("src=[\"|\']([^\"|\']+)[\"|\']",x) 

print(results) 

出力:

['http://www.asite.com/content/icon_clown.gif', 'essays.gif', 'monty-python-(1).bmp', 'gchq-certified.jpg'] 
+0

参考になっていますが、実際には私が探しているものではありません。画像ソースの4つすべてを表示する正規表現が必要です。 –

+0

@ M.Manson Ahh、それはあなたの質問から明らかではない、実際には、あなたの質問のあなたの期待される出力は、1つの画像だけを含みます。 – SpoonMeiser

+0

@ M.Manson私の編集を参照してください。私が言ったように、あなたが文字XまたはYに一致させたい場合は、グループを削除して角括弧を使います。 – voiDnyx

関連する問題