Tôi có tên tập tin sau đó triển lãm mô hình này:Python regex split mà không chuỗi rỗng
000014_L_20111007T084734-20111008T023142.txt
000014_U_20111007T084734-20111008T023142.txt
...
tôi muốn trích xuất hai phần tem thời gian giữa sau dấu gạch chân thứ hai '_'
và trước '.txt'
. Vì vậy, tôi đã sử dụng Python regex chuỗi phân chia như sau:
time_info = re.split('^[0-9]+_[LU]_|-|\.txt$', f)
Nhưng điều này mang lại cho tôi hai chuỗi rỗng thêm trong danh sách trả về:
time_info=['', '20111007T084734', '20111008T023142', '']
Làm thế nào để tôi nhận được chỉ là thông tin tem hai lần? tức là tôi muốn:
time_info=['20111007T084734', '20111008T023142']
Đây là một giải pháp tốt đẹp. Cảm ơn. – tonga
Đó là một sự xấu hổ 'chia' không có một tùy chọn" không có chuỗi rỗng ". – Elazar
@Elazar Không thực sự, nó chỉ là vấn đề như thế nào 're.split()' được thực hiện và mục đích của nó là gì. Trong các trường hợp như thế này, sẽ có ý nghĩa hơn khi xây dựng một mẫu cho dữ liệu mong muốn hơn là tạo một mẫu cho phù hợp với mọi thứ không mong muốn. (Mặc dù 'str.split()' thực sự thả các chuỗi rỗng khi dấu tách không được chỉ định hoặc 'Không'.) – JAB