如何不使用正则表达式捕获字符串
How not capture a string with regex
我有这个字符串
<div class"ewSvNa"><a class="ugP" href="link">Description</a><span data-testid=""><small>$</small><span>0,00</span></div>
和这个正则表达式 /ewS.*?ugP\".*?f=\"(.*?)\">(.*?)<.*?<s.*?n>(.*?)</g
。结果是:
Group 1 = 'link'
Group 2 = 'Description'
Group 3 = '0,00'
我的问题是:第 3 组的结果可能是“$0,00”吗?
谢谢大家=]]]]]
建议不要使用正则表达式来解析 HTML - 而是使用适当的解析器,例如 Beautiful Soup
.
那么你的代码就变成了:
from bs4 import BeautifulSoup
text = '<div class"ewSvNa"><a class="ugP" href="link">Description</a><span data-testid=""><small>$</small><span>0,00</span></div>'
soup = BeautifulSoup(text)
amount = soup.select_one('span[data-testid]').get_text()
# '[=10=],00'
我有这个字符串
<div class"ewSvNa"><a class="ugP" href="link">Description</a><span data-testid=""><small>$</small><span>0,00</span></div>
和这个正则表达式 /ewS.*?ugP\".*?f=\"(.*?)\">(.*?)<.*?<s.*?n>(.*?)</g
。结果是:
Group 1 = 'link'
Group 2 = 'Description'
Group 3 = '0,00'
我的问题是:第 3 组的结果可能是“$0,00”吗?
谢谢大家=]]]]]
建议不要使用正则表达式来解析 HTML - 而是使用适当的解析器,例如 Beautiful Soup
.
那么你的代码就变成了:
from bs4 import BeautifulSoup
text = '<div class"ewSvNa"><a class="ugP" href="link">Description</a><span data-testid=""><small>$</small><span>0,00</span></div>'
soup = BeautifulSoup(text)
amount = soup.select_one('span[data-testid]').get_text()
# '[=10=],00'