如何用正则表达式对招聘薪资数据进行单位统一为xx万-xx万月薪

如何用正则表达式对招聘薪资数据进行单位统一为xx万-xx万

爬取到薪资数据单位有
xx于-xx千xx千-xx万xx万-xx万
xx干-xx万·13薪xx万-xx万·14薪
xX-xx/天
xX-xx K
xx K-xx K
xx K-xx K·15薪
xx千-xx万元/月
要求:统一单位格式为xx万-xx万月薪

使用正则表达式匹配薪资数据中的数字部分。可以使用 \d+ 来匹配一个或多个数字。

将匹配到的数字部分转换为浮点数, 将单位转换为万。

使用正则表达式将所有单位统一为“万”。可以使用 (于|千|万|干|元/月|K) 来匹配这些单位。

将匹配到的结果使用字符串替换函数替换为“万”。

将处理后的薪资数据格式化为 "xx万-xx万月薪"。


```bash
import re

def format_salary(salary_str):
    # 匹配薪资数字部分
    salary_match = re.search(r'\d+', salary_str)
    if salary_match:
        salary_num = salary_match.group()
        # 转换薪资单位
        if "于" in salary_str:
            salary_num = float(salary_num) / 10000
        elif "千" in salary_str:
            salary_num = float(salary_num) / 10
        elif "万" in salary_str:
            salary_num = float(salary_num)
        elif "干" in salary_str:
            salary_num = float(salary_num) * 10000
        elif "元/月" in salary_str:
            salary_num = float(salary_num) / 12
        elif "K" in salary_str:
            salary_num = float(salary_num)
        # 统一单位
        salary_str = re.sub(r'(于|千|万|干|元/月|K)', "万", salary_str)
    return salary_str

salary_str = "20-30万·13薪"
print(format_salary(salary_str)) # "20万-30万