2012-05-01 61 views
11

Tôi đang sử dụng cụm từ thông dụng để chia chuỗi bằng nhiều dấu phân cách. Nhưng nếu hai dấu phân cách của tôi xuất hiện bên cạnh nhau trong chuỗi, nó sẽ đặt một chuỗi rỗng trong danh sách kết quả. Ví dụ:Tách chuỗi có nhiều dấu phân cách bằng Python

re.split(',|;', "This,is;a,;string") 

Kết quả trong

['This', 'is', 'a', '', 'string'] 

Có cách nào để tránh bị '' trong danh sách của tôi mà không cần thêm ,; như một dấu phân cách?

Trả lời

30

Hãy thử điều này:

import re 
re.split(r'[,;]+', 'This,is;a,;string') 
> ['This', 'is', 'a', 'string'] 
+0

Hmm, okay. Bây giờ nếu một trong những dấu phân cách của tôi cũng là một từ thì sao? Ví dụ: 're.split (', |; | string'," Đây, là; a,; string ")' –

+2

Sau đó, điều này sẽ hoạt động: 're.split (r '[,;] + | string', 'This, is; a,; string') ' –

+1

Bây giờ đầu ra sẽ là' ['This', 'is', 'a', '', ''] ' –

Các vấn đề liên quan