Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

141
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!