1

正規表現を使用して Web サイトから学名をスクレイピングしていますが、学名で括弧を引っ張らない方法がわかりません。

HTML は次のように記述します。

<span class="SciName">(Acanthastrea bowerbanki)</span>

私の正規表現は次のように書かれています:

regex = '<span class="SciName">(.+?)</span>'

私の結果は次のようになります。

(Acanthastrea bowerbanki)

しかし、私はそれらが次のように見える必要があります:

Acanthastrea bowerbanki
4

2 に答える 2

3

リテラル文字にするためにバックスラッシュでエスケープする必要がある追加の括弧のペアが必要です。

regex = r'<span class="SciName">\((.+?)\)</span>'

これを次のように使用します。

import re

text = '<span class="SciName">(Acanthastrea bowerbanki)</span>'
regex = r'<span class="SciName">\((.+?)\)</span>'
m = re.match(regex, text)
print m.group(1)
于 2013-10-31T21:22:53.997 に答える
0

これには正規表現を使用する必要はありません。

s = 'blah blah blah (Acanthastrea bowerbanki) blah blah blah'

scientistName = s[s.find("(")+1:s.find(")")]
于 2013-10-31T21:25:05.700 に答える