2011-11-10 39 views
14

nói rằng tôi có chuỗi sau:Python split chuỗi với nhiều ký tự delimiter

"Hello there. My name is Fred. I am 25.5 years old." 

Tôi muốn chia này thành câu, vì vậy mà tôi có danh sách sau đây:

["Hello there", "My name is Fred", "I am 25.5 years old"] 

Như bạn có thể thấy, tôi muốn chia chuỗi trên tất cả các lần xuất hiện của chuỗi ". ", không phải bất kỳ sự xuất hiện nào của số "." hoặc " ". str.split() của Python sẽ không hoạt động trong trường hợp này bởi vì nó sẽ xử lý từng ký tự của chuỗi như một dấu phân cách riêng biệt, chứ không phải toàn bộ chuỗi như là một dấu phân tách nhiều ký tự. Có cách nào đơn giản để giải quyết vấn đề này?

Cảm ơn

EDIT

ngốc tôi. Split không hoạt động theo cách này.

+2

'split' không cư xử như 'strip' trong vấn đề đó. –

Trả lời

32

trình cho tôi

>>> "Hello there. My name is Fr.ed. I am 25.5 years old.".split(". ") 
['Hello there', 'My name is Fr.ed', 'I am 25.5 years old.'] 
+1

Đó là giải pháp tốt hơn so với sử dụng cụm từ thông dụng! – varunl

4
>>> "Hello there. My name is Fred. I am 25.5 years old.".rstrip(".").split(". ") 
['Hello there', 'My name is Fred', 'I am 25.5 years old'] 
2

Bạn có thể sử dụng chức năng chia trong thư viện biểu thức chính quy:

import re 
re.split('\. ', "Hello there. My name is Fred. I am 25.5 years old.") 
+1

Cảm ơn đề xuất thay thế. Điều này hữu ích nếu tôi có nhiều dấu phân cách. 're.split (r '[\ s ,. | /] +', 'Con cáo. \ t \' nhảy lên, trên/')' trả về '[' The ',' brown ',' fox ',' nhảy lên ',' trên ',' the '] ' – IceArdor

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