t = '19:05:30'
m = re.match(r'^(0[0-9]|1[0-9]|2[0-3]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])\:(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[0-9])$', t)
m.groups()
('19', '05', '30')
不理解0[0-9]|1[0-9]|2[0-3]|[0-9]
中括号表示范围我清楚,可是前面的0、1、2表示啥?
Ce sera très clair si vous divisez tout le paragraphe en morceaux
(0[0-9]|1[0-9]|2[0-3]|[0-9])
:
(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]| [0-9])
:
(0[0-9]|1[0-9]|2[0-9]|3[0-9]|4[0-9]|5[0-9]|[ 0-9])
Chaque partie effectue une opération de sélection, (0[0-9]|1[0-9]|2[0-3]|[0-9]) doit correspondre à 0[0-9] ou 1 [ 0-9] ou 2[0-3] ou [0-9], c'est-à-dire qu'il correspond à 00-09 ou 10-19 ou 20-23 ou 0-9, qui correspondent à toutes les valeurs de l'heure.
Les autres parties sont les mêmes.
Commence par 0, 1, 2
Numéros de correspondance
Correspondance 00-09
ou 10-19
ou 20-23
ou 0-9
L'heure ne peut pas dépasser un jour, le temps est de 0 à 23 heures
0,1,2 sont des nombres correspondants