2017-07-09 11 views
0

re.searchを使用しているときに問題があります。Python 2.7 RE条件で検索

a = '<span class="chapternum">1 </span>abc,def.</span>' 

どのように私は、番号を検索することができます '1':例えば

? または「>」で始まる桁で検索し、「writespace」で終わる方法は?

私が試した:

test = re.search('(^>)(\d+)(\s$)', a) 
print test 
>> [] 

それは数 "1"

+0

例:あなたがそれらを取り除く場合は、あなたの答えを持っているA = <スパンクラス=」 chapternum "> 1 abc、def。 – Enoch

+2

実際のHTMLパーサーの使用を検討しましたか?正規表現を使用することは(有名には賢明ではありません)(https://stackoverflow.com/a/1732454/3001761)。 – jonrsharpe

+0

答え(@jonrsharpeリンク)が面白かったかもしれないが、私はそれを決して忘れないだろう。 HTMLを解析するためにregexを使用しないでください。 –

答えて

0

^$は、文字列の先頭と末尾を示す取得に失敗です。

>>> test = re.search('(>)(\d+)(\s)', a) 
>>> test.groups() 
('>', '1', ' ') 

ないあなたが(括弧でキャプチャする)ものの、最初と最後のグループが必要であることを確認してください:

>>> a = '<span class="chapternum">23 </span>abc,def.</span>' 
>>> test = re.search('>(\d+)\s', a) 
>>> test.group(1) 
'23' 
+0

すぐにお返事いただきありがとうございます。これは '1'を見つけることができますが、私はすべての数字が私の保留プログラムでグループ(1)と一致することを確信できません。したがって、私はこのパターンのような結果だけを検索する方法を探しています:> \ d + \ s。 – Enoch

+0

'test.group(1)'は '最初のグループ'を意味し、 '\ d +'はすべての数字を取得します。 – fredtantini

+0

ああ。わかった。どうもありがとう。 – Enoch