| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | import re |
| |
|
| | from .num import num2str |
| |
|
| | |
| | |
| | RE_TEMPERATURE = re.compile(r"(-?)(\d+(\.\d+)?)(°C|℃|度|摄氏度)") |
| | measure_dict = { |
| | "cm2": "平方厘米", |
| | "cm²": "平方厘米", |
| | "cm3": "立方厘米", |
| | "cm³": "立方厘米", |
| | "cm": "厘米", |
| | "db": "分贝", |
| | "ds": "毫秒", |
| | "kg": "千克", |
| | "km": "千米", |
| | "m2": "平方米", |
| | "m²": "平方米", |
| | "m³": "立方米", |
| | "m3": "立方米", |
| | "ml": "毫升", |
| | "m": "米", |
| | "mm": "毫米", |
| | "s": "秒", |
| | } |
| |
|
| |
|
| | def replace_temperature(match) -> str: |
| | """ |
| | Args: |
| | match (re.Match) |
| | Returns: |
| | str |
| | """ |
| | sign = match.group(1) |
| | temperature = match.group(2) |
| | unit = match.group(3) |
| | sign: str = "零下" if sign else "" |
| | temperature: str = num2str(temperature) |
| | unit: str = "摄氏度" if unit == "摄氏度" else "度" |
| | result = f"{sign}{temperature}{unit}" |
| | return result |
| |
|
| |
|
| | def replace_measure(sentence) -> str: |
| | for q_notation in measure_dict: |
| | pattern = rf"(?<=\d){q_notation}" |
| | sentence = re.sub(pattern, measure_dict[q_notation], sentence) |
| | return sentence |
| |
|