2016-12-19 3 views
1

正規表現をPythonで使用して、以下のデータを解析します。正規表現を使用して特定のデータを照合する

データthing1 =

href="quote.ashx?t=JBL&amp;ty=c&amp;p=d&amp;b=1">4.47B</a>, <a 
t=JBL&amp;ty=c&amp;p=d&amp;b=1">18.35</a>, <a class="screener-link" 
style="color:#008800;">24.15</span></a>, <a class="screener-link" 
style="color:#008800;">11.96%</span></a>, <a class="screener-link" 
href="quote.ashx?t=JBL&amp;ty=c&amp;p=d&amp;b=1">16,932,307</a> 

正規表現

式が小数 Hereのすべてと一致していることを
pattern = "\b\d+(?:\.\d+)" 
match = re.findall(pattern,thing1) 
print(match) 

私は取得しています、結果は予想通り...ある

['4.47', '18.35', '24.15', '11.96'] 

しかし、私はちょうど24.15をしたいです。この結果をもたらすデータに一致するパターンがありますか?

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

+0

このWebサイトを使用して、正規表現をリアルタイムで試すことができます(https://regex101.com/)。 24.15と18.35の違いは? – DyZ

+0

パターンマッチングの観点からは、数字の前のテキストの違いがあると思います。 –

答えて

2

HTMLと正規表現は良い友達ではありません。代わりにHTMLパーサーを使用することを強くお勧めします。

正規表現を使用することを強くお勧めする場合は、関連するパターンを選択することがより具体的です。

specific_textはあなたがここに(あなたの例では <span style=\"color.*?>することができ
specific_text(\d+(?:\.\d+)) 

: - あなたは(どちらも同じパターン持っているように見えるの前と後)を抽出したい数字について何も特別なことはありませんので、あなたのような何かを試すことができます2つの結果が得られます。最初のものはあなたが探しているものです)。

関連する問題