簡體   English   中英

獲取 Python 字符串中特定單詞之間的單詞

[英]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)

文檔: https://docs.python.org/3/library/re.html

這是結構化數據,而不僅僅是字符串,因此我們可以使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM