¿Cómo se podría escribir una expresión regular para usar en python para dividir párrafos?expresión regular python para dividir párrafos
Un párrafo está definido por 2 saltos de línea (\ n). Pero uno puede tener cualquier cantidad de espacios/pestañas junto con los saltos de línea, y todavía debe considerarse como un párrafo.
Estoy usando python, entonces la solución puede usar python's regular expression syntax que se extiende. (Se puede hacer uso de (?P...)
cosas)
Ejemplos:
the_str = 'paragraph1\n\nparagraph2'
# splitting should yield ['paragraph1', 'paragraph2']
the_str = 'p1\n\t\np2\t\n\tstill p2\t \n \n\tp3'
# should yield ['p1', 'p2\t\n\tstill p2', 'p3']
the_str = 'p1\n\n\n\tp2'
# should yield ['p1', '\n\tp2']
Lo mejor que podía venir con es: r'[ \t\r\f\v]*\n[ \t\r\f\v]*\n[ \t\r\f\v]*'
, es decir
import re
paragraphs = re.split(r'[ \t\r\f\v]*\n[ \t\r\f\v]*\n[ \t\r\f\v]*', the_str)
pero que es feo. ¿Algo mejor?
EDITAR:
Sugerencias rechazadas:
r'\s*?\n\s*?\n\s*?'
-> Eso haría que el ejemplo 2 y 3 fallar, ya que incluye \s
\n
, lo que permitiría saltos de párrafo con más de 2 \n
s.
Hay. [^ \ S \ n] :) –