,當我讀到一文中,我有這樣的一些文字的行<h3 class="heading">General Purpose</h3>
串,現在我想這是唯一從上面General Purpose
值..Python的正則表達式兩個字符串
d = re.search(re.escape('<h3 class="heading">')+"(.*?)"+re.escape('</h3>'), str(data2))
if d:
print(d.group(0))
,當我讀到一文中,我有這樣的一些文字的行<h3 class="heading">General Purpose</h3>
串,現在我想這是唯一從上面General Purpose
值..Python的正則表達式兩個字符串
d = re.search(re.escape('<h3 class="heading">')+"(.*?)"+re.escape('</h3>'), str(data2))
if d:
print(d.group(0))
0組包含整個匹配;你想組1的內容:
print(d.group(1))
但是總體來說,使用正則表達式解析HTML是不是一個好主意(雖然實際地說,嵌套h3
標籤應該是相當少見)。
感謝您的回覆組(1)也在工作... – kattaprasanth
import re
text="""<h3 class="heading">General Purpose</h3>"""
pattern="(<.*?>)(.*)(<.*?>)"
g=re.search(pattern,text)
g.group(2)
輸出:
'General Purpose'
如果它是一個美麗的湯對象,然後它更簡單,以獲得的價值。你不會需要正則表達式。
from bs4 import BeautifulSoup
text="""<h3 class="heading">General Purpose</h3>"""
a=BeautifulSoup(text)
print a.select('h3.heading')[0].text
輸出:
General Purpose
感謝您的答覆,它最後工作 – kattaprasanth
如果它已經是一個美麗的對象,那麼你不必使用額外的正則表達式來提取數據。您可以使用beautifulsoup方法來提取html數據。 – MYGz
@kattaprasanth:在您評論您使用的是BeautifulSoup之前,我寫了我的回答。在這種情況下,請刪除我的答案中的「已接受」複選標記,並將其添加到此答案中,因爲它顯然是更好的答案。 –
警告:只能在Python,而不是PCRE或JS(不支持JS回顧後)。
(?<=\<\h3 class=\"heading\"\>).*?(?=\<\/h3\>)
感謝您的更新 – kattaprasanth
你能讓你的問題更清楚嗎?在你的問題中加入data2,並且提到你想從data2中提取什麼。 – MYGz
這是一個示例字符串,還是您實際上有HTML? http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags –
我想你想要d.group(1)。 0是整個匹配的字符串,1是第一個加括號的組。 – roarsneer