Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

103
Vistas
Asegúrese de que todas las líneas en un archivo coincidan con un patrón RegEx conocido, sin depender de \A \z

En un archivo de varias líneas, quiero verificar que todas las líneas coincidan con uno o más patrones complejos (que pueden cubrir varias líneas cada uno).

Puedo hacer que esto funcione bien con este RegEx

 \A(patternA\n|patternB\n)*\z

(Para algunos idiomas funciona con \Z en lugar de \z )

Coincidirá:

 patternA patternB patternA

y rechazará

 patternA patternC patternB

Pero no funciona en JavaScript (donde necesito ejecutar la prueba) porque JavaScript RegEx aparentemente no admite los anclajes \A (inicio de archivo) o \z (fin de archivo). Y si esos anclajes se dejan, obtengo un conjunto de coincidencias (la primera y la tercera línea en mi segundo ejemplo anterior), sin la información de que también hay no coincidencias.

Por el momento, lo único que se me ocurre es ejecutar la verificación RegEx sin esos dos anclajes y luego verificar que la suma de la longitud de todas las coincidencias sea igual a la longitud del texto general, pero esto parece bastante torpe.

¿Existe una forma simple/elegante de implementar esta verificación en JavaScript RegEx?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Ahora creo que la mejor solución puede ser invertir la lógica para que busque cualquier cosa que no coincida con los patrones requeridos y pase la verificación si no se encuentra ninguna coincidencia. El siguiente RegEx, que se ejecuta bajo JavaScript, por ejemplo, coincide con el segundo ejemplo de mi publicación original y no con el primero:

 ^(?!patternA$|patternB$|$)

Se necesita la última opción ( $ ) ya que, de lo contrario, siempre coincide con la línea (vacía) que sigue a la última nueva línea.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si los patrones individuales son complejos, puede ser más fácil para el motor de expresiones regulares y más simple de entender escribir código imperativo que recorra cada una de las líneas y verifique cada uno de los patrones en orden.

Esto permitirá que cada uno de los patrones permanezca en una expresión regular. No es necesario incluirlos en el patrón de "archivo completo" cuando se actualiza, agrega o elimina uno. Los diferentes patrones también pueden usar diferentes banderas de expresiones regulares y así sucesivamente.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda