아래 정규식을 사용하는 정규식을 얻으려고 애 쓰고 있습니다.정규식 형식의 정규식 (HHh MMs SSs)
위의 예는 긴 문자열의 일부입니다 : 포인터는
(43m 12s)
(13m 11s)
(11h 43m 12s)
(1h 43m 12s)
편집을 appeciated.
Edit2가이 :
\s\(\s\d{1,2}[a-z]\s.*\)
아래 정규식을 사용하는 정규식을 얻으려고 애 쓰고 있습니다.정규식 형식의 정규식 (HHh MMs SSs)
위의 예는 긴 문자열의 일부입니다 : 포인터는
(43m 12s)
(13m 11s)
(11h 43m 12s)
(1h 43m 12s)
편집을 appeciated.
Edit2가이 :
\s\(\s\d{1,2}[a-z]\s.*\)
,이 작동합니다 \(\s?(?:\d{1,2}\w)+\s?\)
여기에 작업을 볼 수 있습니다 https://regex101.com/r/yC8iH6/1
[편집]을 : 필요한 경우 캡처 추가 당신은 이것을 할 수있는 캡처해야합니다 : \(\s?(?:(\d{1,2})\w\s?)?(?:(\d{1,2})\w\s?)(?:(\d{1,2})\w\s?)\s?\)
. 첫 번째 그룹은 선택 사항입니다.
이 작업 버전은 https://regex101.com/r/yC8iH6/2입니다.
또한 첫 번째 비 캡처 정규 표현식은 다음과 같이 더 정확하게 표현할 수 있습니다. \(\s?(?:\d{1,2}\w){2,3}\s?\)
.
희망이 도움이됩니다.
당신은 반드시 정규 표현식으로 접근 할 필요가 없습니다 :
이것은 내가 지금 가지고있는 것입니다.
는 여기에 또 다른 옵션는 - dateutil
날짜 파서 사용
>>> from dateutil.parser import parse
>>> l = ["43m 12s", "13m 11s", "11h 43m 12s", "1h 43m 12s"]
>>> for item in l:
... dt = parse(item)
... print(item, dt.hour, dt.minute, dt.second)
...
('43m 12s', 0, 43, 12)
('13m 11s', 0, 13, 11)
('11h 43m 12s', 11, 43, 12)
('1h 43m 12s', 1, 43, 12)
또는 실패하면, 당신은 %Mm %Ss
형식을 시도, %Hh %Mm %Ss
을 시도 time.strptime()
를 사용할 수 있습니다.
경우 : 당신은 시간 분, 초를 캡처 할 필요가없는 경우