2013-10-31 44 views
1

我正在使用正則表達式從網站刮科學名稱,我無法弄清楚如何不拉括號括起來的科學名稱。刮沒有括號清理科學名稱使用正則表達式

的HTML是這樣寫的:

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

我正則表達式是這樣寫的:

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

我的結果是這樣的:

(Acanthastrea bowerbanki) 

但我需要他們看起來像這樣:

Acanthastrea bowerbanki 
+0

你可以發佈你正在使用的代碼? – jramirez

+0

Nickie撞到了頭上,我又回來了。 – PythonFisher

回答

3

你需要一個額外的對括號,你必須用反斜槓逃逸的,以使他們的文字字符:

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

您將使用本作中:

​​
+0

這樣做,雖然我省略了「r」:regex = r' \((。+?)\)'那是什麼? – PythonFisher

+0

'r'代表原始字符串符號;你可以閱讀更多[關於它](http://docs.python.org/2.7/reference/lexical_analysis.html#string-literals)以及[爲什麼它在正則表達式中很有用](http://docs.python。組織/ 2/HOWTO/regex.html#的-反斜槓鼠疫)。在這種情況下,它不是必須的,因爲\('和'\)'中的反斜槓被保留。 – nickie

+0

在我過了一天的Python之後,我感到很尷尬,我有點尷尬,我問了這個問題,但它確實有幫助! – PythonFisher

0

你不需要爲此使用正則表達式。

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

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