validate test regexp online from example create javascript regex sentence

test - Javascript RegExp para dividir el texto en oraciones y mantener el delimitador



regexp javascript (3)

Estoy tratando de usar la división de javascript para obtener las oraciones de una cadena pero mantener el delimitador, por ejemplo!?.

Hasta ahora tengo

sentences = text.split(/[//.!?]/);

que funciona pero no incluye la puntuación final para cada oración (.!?).

¿Alguien sabe de una manera de hacer esto?


Intente esto en su lugar: -

sentences = text.split(/[//.!/?]/);

? Es un carácter especial en expresiones regulares, así que hay que escapar.

Perdón, he perdido la lectura de su pregunta: si desea mantener los delimitadores, debe usar la función de match no split Consulte esta pregunta.


La siguiente es una pequeña adición a la respuesta de Larry que coincidirá con las oraciones parantéticas:

text.match(//(?[^/./?/!]+[/.!/?]/)?/g);

aplicado en:

text = "If he''s restin'', I''ll wake him up! (Shouts at the cage.) ''Ello, Mister Polly Parrot! (Owner hits the cage.) There, he moved!!!"

da

["If he''s restin'', I''ll wake him up!", " (Shouts at the cage.)", " ''Ello, Mister Polly Parrot!", " (Owner hits the cage.)", " There, he moved!!!"]


Necesitas usar match no split.

Prueba esto.

var str = "I like turtles. Do you? Awesome! hahaha. lol!!! What''s going on????"; var result = str.match( /[^/.!/?]+[/.!/?]+/g ); var expect = ["I like turtles.", " Do you?", " Awesome!", " hahaha.", " lol!!!", " What''s going on????"]; console.log( result.join(" ") === expect.join(" ") ) console.log( result.length === 6);