Я пытаюсь разобрать информацию о зарплате из источника бесплатной формы. После разбора я хотел бы иметь возможность хранить анализируемую информацию в стандартном формате. Есть ряд перестановок, которые я ожидаю встретить на основе опыта.Анализ информации о зарплате бесплатной формы
Вот пример некоторых из случаев я ожидаю:
$10/hr,
$10.00/hr,
$10 per hour,
$10 per hr,
$10.00 per hour,
$10.00 per hr,
10$/hr,
10$/hour,
10.00$/hr,
10.00$/hour
Я мог бы продолжать и дальше, но я думаю, вы получите идею.
Обобщенная, форматы Я ожидаю, что можно объяснить следующим образом:
[ТОК] [сумма [.xx]] [[к] [000]] [ТОК] [-] [за ] [-] [таймфрейм]
- [ТОК] может быть любой символ валюты, может либо появиться до или после суммы, но не оба. Необязательно
- [количество] может быть int или float, .xx является необязательным и может быть либо .x, либо .xx. Обязательный
- [[к] [000]] указывает сумма = сумма * 1000. Дополнительно
- [-] сепаратор может быть либо пробел или тире. Дополнительно
- [за] может быть «per» или «/». Обязательный
- [таймфрейм] может быть: год, год, час, час. Обязательно
Я определенно подозреваю, что мне нужно будет использовать какое-то регулярное выражение, но у меня нет опыта при реализации регулярного выражения, и, честно говоря, это меня немного смущает. Я не ищу, чтобы кто-то разрешил эту проблему для меня, но если вы можете помочь мне оттолкнуть меня в правильном направлении, мы будем очень благодарны.
В конце концов, я хотел бы сохранить результаты как:
Class Salary():
float hourly_pay
String pay_type #hourly or salary
Толчком в правильном направлении было бы начать играть с обучения регулярных выражений –