Honestamente, su función puede "hacer una cosa", pero como usted mismo dijo
Podría comenzar a dividir la expresión regular en múltiples funciones,
lo que significa que su código ex reg hace muchas cosas. Y supongo que podría desglosarse en unidades más pequeñas y comprobables individualmente. Sin embargo, si esta es una buena idea, no es fácil de responder (especialmente sin ver el código real). Y la respuesta correcta puede ser ni "sí" o "no", sino "todavía no, pero la próxima vez que tenga que cambiar algo en ese registro exp".
pero siento que realmente perdería la legibilidad de esa manera, ya que estoy cambiando efectivamente los idiomas
Y este es el punto central: tiene un fragmento de código escrito en un lenguaje regular . Este lenguaje no proporciona ningún buen medio de abstracción en sí mismo (y no considero que los "grupos de captura con nombre" reemplacen las funciones). Por lo tanto, la refactorización "en el lenguaje reg ex" no es realmente posible, y entrelazar los registros reg más pequeños con el idioma del host puede no mejorar la legibilidad (al menos, así lo siente , pero tiene dudas, de lo contrario no habría publicado la pregunta) . Así que aquí está mi consejo
muestre su código a otro desarrollador avanzado (tal vez en /codereview// ) para asegurarse de que otros piensen en la legibilidad como lo hace usted. Sea abierto a la idea de que otros pueden no encontrar un registro de 100 líneas tan legible como usted. A veces, la noción de "no se puede romper fácilmente en pedazos más pequeños" se puede superar con un segundo par de ojos.
observe la capacidad de evolución real: ¿su brillante registro aún se ve tan bien cuando llegan nuevos requisitos y tiene que implementarlos y probarlos? Mientras su registro exp funcione, no lo tocaría, pero cada vez que hay que cambiar algo, lo reconsideraría si realmente fuera una buena idea poner todo en este gran bloque, y (¡en serio!) Repensar si se divide en piezas más pequeñas no serían una mejor opción.
observe la capacidad de mantenimiento: ¿puede depurar efectivamente el registro en el formulario actual muy bien? Especialmente después de que tiene que cambiar algo, y ahora sus pruebas le dicen que algo está mal, ¿tiene un depurador de registros regulares que lo ayude a encontrar la causa raíz? Si la depuración se vuelve difícil, esa también sería una ocasión para reconsiderar su diseño.