Я пытаюсь создать приложение отслеживания времени, которое должно анализировать строку, которая может иметь (но не всегда) время в ней в одном из многих форматов или комбинаций. Форматы я проверка на этоRegex pattern для соответствия времени, например '1h 10m'
- ч | ч | ч | часов
- м | мин | мин | мин
Они могут быть с пробелом в промежутке между числом и час или минуты и могут быть объединены или только один или другой. Некоторые примеры:
- 1ч
- 1 час 20 минут
- 2ч 15 м
Регулярное выражение для сопоставления раз, что у меня есть в данный момент:
((\d+(\.\d+)?)\s*(h|hr|hrs|hours))?(\s*(\d+)\s*(m|min|mins|minutes))?
Это прекрасно работает если я просто передам ему строку времени без чего-либо перед этим. Моя проблема в том, что я хочу разобрать полную текстовую строку со временем, появляющимся в любом месте. Некоторые примеры:
- является записью некоторого времени для работы 1ч 15й
- 2h 45mins Это запись некоторого времени для работы
- Это запись времени 1часов 25 минут для некоторых работ
- Этих является записью времени для некоторых работ
Есть ли у кого-нибудь какие-либо предложения по решению этого вопроса?
Может быть, [ '((\ D + (?.? \ \ D +)) \ S * (?: ч | ч (?:? Г | RS))) ? (?:? \ S * ((\ D +) \ S * (: мин | мин | м))?) '] (https://regex101.com/r/mZ6oB9/2)? –