Cita:
Originalmente Escrito por maid450
No la he testeado a fondo, pero parece que corrije los principales problemas del metodo inicial:
- Conserva los signos de puntuación (puntos finales de frase, puntos de interrogación/exclamación/suspensivos)
- toma los puntos suspensivos como un unico signo de puntuación, no como 3 puntos por separado
- no separa los números con punto decimal
|
Excelente, Maid, muchas gracias.
Ya he adaptado la tarea y las primeras pruebas parecen funcionar bien, así que he rectificado el post inicial con esas mejoras.
Siempre me gusta tener una idea aproximada de lo que utilizo, así que me he mirado la página de la Wikipedia sobre expresiones regulares, para ir aprendiendo algo de ello, y para tratar de entender un poco el significado de esa ristra de caracteres. Creo que he llegado a entender algunas cosas, o al menos creo entender el sistema, pero no llego a todo. Yo interpreto
\(?[^\.]+(\.\d+)*[^\.]*[\.!\?]+\)?
?[^\.]+ Un punto o una sucesión de puntos consecutivos(sea cual sea su número)
y que ha de ir seguido de(\.\d+) Un punto seguido de un dígito (al menos UN dígito, puede que varios dígitos).
o bien
[^\.] Un punto o una sucesión de puntos consecutivos, sea cual sea su número.
o bien
[\.!\?]+ Un carácter que puede ser un punto, o un cierre de admiración, o un cierre de interrogación (y ese carácter puede aparecer repetido varias veces)
Supongo que tengo unos cuantos errores e imprecisiones. Por ejemplo soy incapaz de interpretar los caracteres de barra invertida (\) que hay al comienzo y al final.
Esto de las expresiones regulares parece muy prometedor, creo que voy a dedicarle un poco más de tiempo.