Python 使用正则表达式删除没有括号的干净的学名

Python 使用正则表达式删除没有括号的干净的学名,python,html,regex,parentheses,Python,Html,Regex,Parentheses,我正在用regex从一个网站上抓取学名,我想不出怎么才能不在括号里加上学名 HTML的编写方式如下: <span class="SciName">(Acanthastrea bowerbanki)</span> regex = '<span class="SciName">(.+?)</span>' (Acanthastrea bowerbanki) Acanthastrea bowerbanki 但我需要它们看起来像这样: <spa

我正在用regex从一个网站上抓取学名,我想不出怎么才能不在括号里加上学名

HTML的编写方式如下:

<span class="SciName">(Acanthastrea bowerbanki)</span>
regex = '<span class="SciName">(.+?)</span>'
(Acanthastrea bowerbanki)
Acanthastrea bowerbanki
但我需要它们看起来像这样:

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

您需要一对额外的括号,必须用反斜杠转义以使其成为文字字符:

regex = r'<span class="SciName">\((.+?)\)</span>'
regex=r'\(.+?)\)
您将在中使用此选项:

import re

text = '<span class="SciName">(Acanthastrea bowerbanki)</span>'
regex = r'<span class="SciName">\((.+?)\)</span>'
m = re.match(regex, text)
print m.group(1)
重新导入
text='(Acanthastrea bowerbanki)'
正则表达式=r'\(.+?)\'
m=重新匹配(正则表达式,文本)
打印m.group(1)

您不需要为此使用正则表达式

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

scientistName = s[s.find("(")+1:s.find(")")]

你能发布你正在使用的代码吗?Nickie一针见血,我又回来了。虽然我在:regex=r'((.+))'中省略了“r”,这是怎么回事?
r
代表原始字符串符号;你可以阅读更多,也可以阅读更多。在这种情况下,这是不必要的,因为
\(
\)
中的反斜杠被保留了下来。这对我来说非常有意义,在一天的Python学习之后,我有点不好意思问这个问题,但它确实帮了我很大的忙!