Pythonで正規表現を使用してスケジュールから異なる時間を抽出する関数をプログラミングしています。ここで私はBeautifulSoupを使用してウェブサイトから得たスケジュールの例である:discussion17と正規表現を使用してスケジュールから時間を抽出する際の問題
インタラクティブ話:00-18:00ドキュメンタリーは、私たちはあなたにすべての方法タクシムゲズィパークボイコットを提示 「ゲズィ占拠」し;良い側面と悪いsides18.00と昼と夜 、 - 19時00詩人・マリア・バン Daalen 'ハイチVodoo' Queridoのpublishers19から詩人:00 Food20:30-22:30
上に示したように入力テキストには開始時刻と終了時刻はありません。時間を分と区別するときに「:」または「。」のどちらかを使用することとの矛盾もあります。私は、次のコードを使用してPythonの上のテキストを検索するには\d\d[:|.]\d\d(\s*.\s*\d\d[:|.]\d\d)?
:regex101を使用して
は、私はすべての異なる時間に動作するようです、次の(非常に醜い)正規表現を行っている
def extract_times(string):
list_of_times = re.findall('\d\d[:|.]\d\d(\s*.\s*\d\d[:|.]\d\d)?', string)
return list_of_times
私はこの機能では、上記の例のテキストを置くとき
は、しかし、それはこれを返します。
['-18:00', ' - 19:00', '', '-22:30']
私はのようなものを期待しました。
どうしたのですか? 18:00から18.00
に合わせて、1:00 01:00
[:.]
に一致するように\d{1,2}[:.]([\d\s-]+[:.])?\d{2}}
説明
\d{1,2}
1または2桁:
私はピトンを知らないが、グループをキャプチャすることでその問題を考える。この '(\ d \ d [:|。] \ d \ d(?:\ s * - \ s * \ d \ d [:| \ d \ d)]) ' – splash58
IT WORKED !!どうもありがとうございました!!! – nieknel