2011-11-10 15 views
14

decir que tengo la siguiente cadena:Python cadena de split con delimitador de varios caracteres

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

Quiero dividirla en frases, por lo que tengo la siguiente lista:

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

Como puede ver, quiero dividir la cadena en todas las ocurrencias de la cadena ". ", no en ninguna aparición de "." o " ". Python's str.split() no funcionará en este caso porque tratará cada carácter de la cadena como un delimitador separado, en lugar de la cadena completa como un delimitador de múltiples caracteres. ¿Hay una manera simple de resolver este problema?

Gracias

EDIT

mi estúpida. Split funciona de esta manera.

+2

'split' no se comporta como' strip' en ese sentido. –

Respuesta

32

Obras para mí

>>> "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

¡Esa es una solución mejor que usar expresiones regulares! – 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

puede utilizar la función de división en la biblioteca de expresiones regulares:

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

Gracias por la sugerencia alternativa. Esto es útil si tengo múltiples delimitadores. 're.split (r '[\ s ,. | /] +', 'The. \ tbrown fox | saltó, sobre/the')' devuelve '['The', 'brown', 'fox', 'saltó ',' sobre ',' el ']' – IceArdor

Cuestiones relacionadas