2017-01-16 3 views
-1

Я пытаюсь разобрать информацию о зарплате из источника бесплатной формы. После разбора я хотел бы иметь возможность хранить анализируемую информацию в стандартном формате. Есть ряд перестановок, которые я ожидаю встретить на основе опыта.Анализ информации о зарплате бесплатной формы

Вот пример некоторых из случаев я ожидаю:

$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 
+1

Толчком в правильном направлении было бы начать играть с обучения регулярных выражений –

ответ

0

Этот фрагмент кода показывает то, что завершала что-то близкое к тому, что я искал. Это, конечно, не изящно, но это работает.

Это мое первое регулярное выражение когда-либо, любые предложения о том, как улучшить это?

https://regex101.com/r/aW3pR4/44

Смежные вопросы