[英]Get words between specific words in a Python string
我正在努力獲取字符串中某些單詞之間的單詞。
在兩個子字符串之間查找字符串參考這篇文章,我通過以下方式成功捕獲了單詞。
s = 'asdf=5;iwantthis123jasd'
result = re.search('asdf=5;(.*)123jasd', s)
print(result.group(1))
但在下面的句子中它失敗了。
s = ''' <div class="prod-origin-price ">
<span class="discount-rate">
4%
</span>
<span class="origin-price">'''
result = re.search('<span class="discount-rate">(.*)</span>', s)
print(result.group(1))
我試圖帶來“4%”。 其他一切都成功,但我不知道為什么只有這個失敗。 幫助
試試這個(注意空格和換行)
import re
s = ''' <div class="prod-origin-price ">
<span class="discount-rate">
4%
</span>
<span class="origin-price">'''
result = re.search('<span class="discount-rate">\s*(.*)\s*</span>', s)
print(result.group(1))
使用 re.DOTALL 標志匹配新行:
result = re.search('<span class="discount-rate">(.*)</span>', s, re.DOTALL)
這是結構化數據,而不僅僅是字符串,因此我們可以使用Beautiful Soup之類的庫來幫助我們簡化此類任務:
from bs4 import BeautifulSoup
s = ''' <div class="prod-origin-price ">
<span class="discount-rate">
4%
</span>
<span class="origin-price">'''
soup = BeautifulSoup(s)
value = soup.find(class_='discount-rate').get_text(strip=True)
print(value)
# Output:
4%
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.