1

我正在使用正则表达式从网站上抓取科学名称,但我不知道如何不使用科学名称拉括号。

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 回答