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

158
Vistas
Javascript Regex coincide con una línea que termina con char ' cuando no está precedida por?

Estoy tratando de crear una expresión regular que coincida con todas las líneas con cierto PREFIJO y la coincidencia debería terminar cuando se encuentre un carácter ' Sin embargo, si hay un ? antes de ' , entonces no debería contarse como el final de la línea. Básicamente el signo de interrogación ? sirve como char de escape.

Esto es lo que he estado usando, pero no funciona para lo que intento hacer: Esta es la expresión regular /SOME_PREFIX+[^']+/

[EDITAR] Este es el texto esperado completo:

you could have something before'SOME_PREFIX foo bar'something in the middle'SOME_PREFIX BAR FOO ?'SHOULD ALSO MATCH'test'

SOME_PREFIX foo bar' <---Debería coincidir 1

SOME_PREFIX BAR FOO ?'SHOULD ALSO MATCH' <--- Debería ser una coincidencia 2, pero esta línea no funciona, ya que solo coincide hasta ?' que es la primera aparición de la '

Para referencia: https://regexr.com/63io9

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

0

Podrías usar, por ejemplo:

 const text = "you could have something before'SOME_PREFIX foo bar'something in the middle'SOME_PREFIX BAR FOO ?'SHOULD ALSO MATCH'test'"; const matches = text.match(/SOME_PREFIX(?:[^'?]+|\?'?)*'/g); console.log(matches);

[^'?]+ coincide con cualquier carácter que no sea un ' o ? , una o más veces, y \?'? significa coincidir con un ? seguido opcionalmente por un ' .

Una construcción de alternancia como (?:x|y) significa intentar hacer coincidir x primero y, si no coincide, intentar hacer coincidir y .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si se admite un lookbehind en su entorno, puede hacer coincidir SOME_PREFIX y luego hacer coincidir cualquier carácter excepto SOME_PREFIX o un ' y solo hacer coincidir el ' cuando está directamente precedido por ?

 SOME_PREFIX(?:(?!SOME_PREFIX|').)*(?:(?<=\?)'(?:(?!SOME_PREFIX|').)*)*'

Explicación

  • SOME_PREFIX Coincide literalmente
  • (?: Grupo de no captura para repetir como un todo
    • (?!SOME_PREFIX|') negativa para afirmar no SOME_PREFIX o ' directamente a la derecha
    • . Haga coincidir cualquier carácter excepto una nueva línea para no cruzar líneas
  • )* Cerrar el grupo de no captura y opcionalmente repetirlo
  • (?: Grupo de no captura para repetir como un todo
    • (?<=\?)' Match ' solo cuando va precedido directamente por ?
    • (?:(?!SOME_PREFIX|').)* El mismo patrón repetitivo que en la primera parte
  • )* Cerrar el grupo de no captura y opcionalmente repetirlo
  • ' Coincide con una comilla simple

Demostración de expresiones regulares

 const regex = /SOME_PREFIX(?:(?!SOME_PREFIX|').)*(?:(?<=\?)'(?:(?!SOME_PREFIX|').)*)*'/g; const str = "you could have something before'SOME_PREFIX foo bar'something in the middle'SOME_PREFIX BAR FOO ?'SHOULD ALSO MATCH'test'"; console.log(str.match(regex));

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puedes utilizar

 ^(?!.*\?'$)SOME_PREFIX.+'

Vea una demostración en regex101.com .

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