Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

110
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda