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

156
Vistas
Haga coincidir una línea con un carácter [, pero no coincida si tiene un carácter]

Pensé que esta expresión regular coincidiría con líneas con [ , pero no si tiene ] :

 ^.*\[.*(?!\]).*$

En cambio, hace coincidir cada línea con un [ (mostrado en negrita ):

Esto [debe coincidir]. Esta línea debe coincidir

Esta línea no debería coincidir.

Esta línea no debería coincidir. Esta línea [no debe coincidir.

¿Cómo arreglar esa expresión regular para que no coincida con las líneas que tienen un ] ?

Esto [debe coincidir]. Esta línea debe coincidir

Esta línea no debería coincidir.

Esta línea no debería coincidir. Esta línea [no debe coincidir.

Demostración: https://regexr.com/67qk7

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

0

Este patrón ^.*\[.*(?!\]).*$ coincide con [ y el siguiente .* coincidirá con el resto de la línea.

Luego, al final de la línea, afirmará no ] directamente a la derecha, lo cual es cierto porque ya está al final de la línea. Entonces el .* es opcional y puede afirmar el final de la cadena.

Por lo tanto, coincidirá con cualquier línea completa que tenga al menos un solo [

Si desea hacer coincidir pares de corchetes de apertura hasta cierre [...] y no permitir ningún corchete dentro de él, o corchetes individuales fuera de él y hacer coincidir al menos un solo par, puede repetir 1 o más veces emparejando pares rodeados por caracteres opcionales que no sean corchetes.

 ^(?:[^\][\n]*\[[^\][\n]*\])+[^\][\n]*$

Demostración de expresiones regulares

about 4 years ago · Juan Pablo Isaza Denunciar

0

Una solución alternativa que no es súper eficiente pero es un poco más corta:

 ^(?!.*\[[^\]\n]*$)[^[\n]*\[.+$

Demostración RegEx

Explicación:

  • (?!.*\[[^\]\n]*$) falla la coincidencia si obtenemos un [ sin cierre ] en cualquier lugar
  • [^[\n]*\[ coincide primero con [ en una línea
about 4 years ago · Juan Pablo Isaza Denunciar

0

"Esta expresión regular coincidiría con líneas con un [" (uno o más), "pero no si tiene un ]" (uno o más):

 ^[^\][\n]*\[[^\]\n]*$

Captura de pantalla de Regex101

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