正規表現を使用して、次の形式のデータを識別しようとしています: XX 日、XX 時間、XX 分 (空白、コンマ、および複数形による最小限の構造変化が予想されます)日時間と分に関連付けられた数値を取得します。
私は次のことを試しました:
matchingTime = "27 days, 21 hours, 23 minutes ago"
re.search('([0-9]{0,2}).*day.* ([0-9]+) .*hour.* ([0-9]+) .*minute.*',matchingTime)
上記の場合、正常に動作し、グループ 1 2 3 の値をそれぞれ取得します。
問題は、フィールドのいずれかが必ずしも存在するとは限らないことです。
matchingTime = "21 hours, 23 minutes ago"
上記の場合、失敗します。
私は try と exceptions を使用してそれを実行できることを知っていますが、それを行うための簡潔で効率的な方法を見つけたいと思っていました。
どんな入力も本当に役に立ちます。私の質問にさらに説明を加えていただければ幸いです。
編集:[0-9]{0,2}
日々の部分では、これを解決するいくつかの方法を試してみてください。