zhzhx 发表于 2023-2-16 16:16

python利用正则表达式提取文本中的金额

import re

Regx = re.compile("((\\d*[\\d,,]*\\.?\\d*)|(0\\.+))(元|百万|万元|亿元|万|亿)")

# 对整个文本进行分句,根据个人统计和测试,只需要用逗号对文本分句足矣
def cutFun(initial_txt):
    result = re.split('。', initial_txt)
    return result


def YUAN_contain(content, temp_result_set):
    str = '元'
    for term in cutFun(content):
      if str in term:
            temp_result_set.add(term)


def get_price(txt):
    """获取价格"""
    price = 0
    # 符合要求的文本加入集合中
    # 如果一个句子中有“元”那么将该句子存放在一个临时变量中以供试用
    temp_result_set = set()
    YUAN_contain(txt, temp_result_set)
    # 将temp_result_set中含有数字的句子分离出来
    # 最终结果为一个集合
    result_set = set()
    for term in temp_result_set:
      for ch in term:
            if ch.isdigit():
                result_set.add(term)

    # 用正则式提取金额
    for term in result_set:
      i = Regx.search(term)
      if i != None:
            price = i.group()
    return price

zhangsan2022 发表于 2023-2-16 17:35

多谢分享。

ysjd22 发表于 2023-2-16 19:45

debug_cat 发表于 2023-2-16 22:15


多谢分享。
页: [1]
查看完整版本: python利用正则表达式提取文本中的金额