📜  python - 从字符串中提取价格 - Python (1)

📅  最后修改于: 2023-12-03 15:04:02.687000             🧑  作者: Mango

Python - 从字符串中提取价格

在处理文本数据时,经常需要从字符串中提取价格等数字信息。本文将介绍如何使用Python从字符串中提取价格。

1. 使用正则表达式提取价格

正则表达式在Python中是一个强大的工具,可以用来快速从文本中提取所需信息。以下代码演示如何使用正则表达式从字符串中提取价格:

import re

text = "The price of this product is $19.99"
price = re.search("\$\d+\.\d+", text).group()
print(price) # output: $19.99

解释:

  • "\$\d+\.\d+"是正则表达式,表示匹配$符号后面的至少一位数字、一个小数点和至少一位数字
  • re.search()函数在文本中搜索与正则表达式匹配的第一个字符串,并返回一个包含匹配信息的对象
  • group()方法返回匹配到的字符串

注意: 如果目标字符串中有多个价格,需要使用re.findall()方法,它会找到所有匹配的字符串并返回一个列表。

2. 使用BeautifulSoup提取价格

如果目标字符串是HTML文档,则可以使用BeautifulSoup库提取价格。以下代码演示如何使用BeautifulSoup从HTML文档中提取价格:

from bs4 import BeautifulSoup

html = """
<html><body>
<p>The price of this product is <span class="price">$19.99</span></p>
</body></html>
"""

soup = BeautifulSoup(html, "html.parser")
price = soup.find("span", {"class": "price"}).text
print(price) # output: $19.99

解释:

  • BeautifulSoup()函数将HTML文档转换为BeautifulSoup对象
  • find()方法可以根据标签名、属性名和属性值来搜索HTML文档中的指定元素
  • .text属性返回元素文本内容
3. 小结

本文介绍了两种从字符串中提取价格的方法:使用正则表达式和使用BeautifulSoup库。根据不同情况选择合适的方法能够提高编码效率和准确性。