如何用正则表达式对招聘薪资数据进行单位统一为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万