Mam następujące nazwy plików, które wykazują ten wzór:Python regex podzielonego bez pusty ciąg
000014_L_20111007T084734-20111008T023142.txt
000014_U_20111007T084734-20111008T023142.txt
...
chcę wyodrębnić dwie środkowe części znacznika czasu po drugim podkreślenia '_'
i przed '.txt'
. Użyłem więc następujący podział Python regex ciąg:
time_info = re.split('^[0-9]+_[LU]_|-|\.txt$', f)
Ale to daje mi dwa dodatkowe puste struny w zwróconej liście:
time_info=['', '20111007T084734', '20111008T023142', '']
Jak mogę dostać tylko informacje skarbowej dwa czasową? to znaczy chcę:
time_info=['20111007T084734', '20111008T023142']
To jest dobre rozwiązanie. Dzięki. – tonga
To wstyd 'split' nie ma opcji" brak pustych napisów ". – Elazar
@Elazar Niezupełnie, chodzi tylko o to, w jaki sposób wdrożono 're.split()' i jaki jest jego zamierzony cel. W takich przypadkach rozsądniej jest zbudować wzór dla pożądanych danych niż zbudować taki, który pasowałby do wszystkiego, co nie jest pożądane. (Chociaż 'str.split()' faktycznie upuszcza puste ciągi, gdy separator jest nieokreślony lub 'None'.) – JAB