| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- """
- 数字解析工具模块
- 提供数字解析和标准化功能:
- - 解析数字(处理千分位和货币符号)
- - 标准化文本型数字
- """
- import re
- def parse_number(text: str) -> float:
- """
- 解析数字,处理千分位和货币符号
-
- Args:
- text: 包含数字的文本
-
- Returns:
- 解析后的浮点数
- """
- if not text:
- return 0.0
-
- clean_text = re.sub(r'[¥$€£,,\s]', '', text)
-
- is_negative = False
- if clean_text.startswith('-') or clean_text.startswith('−'):
- is_negative = True
- clean_text = clean_text[1:]
-
- if clean_text.startswith('(') and clean_text.endswith(')'):
- is_negative = True
- clean_text = clean_text[1:-1]
-
- try:
- number = float(clean_text)
- return -number if is_negative else number
- except ValueError:
- return 0.0
- def normalize_text_number(text: str) -> str:
- """
- 标准化文本型数字:移除空格和连字符
-
- Args:
- text: 文本型数字(如账号、订单号)
-
- Returns:
- 标准化后的文本
- """
- if not text:
- return ""
- return re.sub(r'[\s\-\u3000]', '', text)
|