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

140
Vistas
Use lookbehind para ignorar una cadena entre dos coincidencias, pero captúrela de todos modos

Quiero unir instancias de ' el sustantivo bla, bla ' a lo largo de un texto, donde el bla, bla puede incluir muchas palabras, pero NO 'el'.

Esta expresión regular:

 /(\b([Tt]he|[Aa]n|[Aa]|[Aa]nother)\b)?((?!\b(the|an?|another)\b).)*\b(cat|apple)\b/g

Produce estos fósforos: El pequeño gato se sentó sobre un enorme gato negro y se comió una manzana .

Probé algunas expresiones regulares aquí: https://regexr.com/674l6

La coincidencia funciona, pero no puedo capturar coincidencias completas. Cuando pasa el cursor sobre las coincidencias en regexr, no todos los grupos de captura están disponibles. Solo puedo capturar el principio y el final de la cadena coincidente.

Hay una demostración básica aquí .

He estado ajustando la expresión regular durante horas, pero fue en vano.

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

0

Para los caracteres en el medio, solo tiene una coincidencia para el último carácter individual en un grupo de captura, ya que está repitiendo el grupo de captura.

Puede agregar un grupo de captura alrededor del todo que está emparejando y convertir el grupo de captura repetitivo en un grupo de no captura.

Como desea hacer coincidir el sustantivo bla, bla , el primer grupo de captura no debe ser opcional.

El partido ahora tiene 3 grupos de captura en lugar de 5.

 \b([Tt]he|[Aa]n(?:other)?|[Aa])\b((?:(?!\b(?:the|an?|another)\b).)*)\b(cat|apple)\b

El patrón actualizado en partes:

  • \b Un límite de palabra para evitar una coincidencia parcial
  • ( Grupo de captura 1
    • [Tt]he|[Aa]n(?:other)?|[Aa] Coincide con una de las alternativas
  • ) Cerrar grupo 1
  • \b Un límite de palabra
  • ( Grupo de captura 2
    • (?:(?!\b(?:the|an?|another)\b).)* Repita la coincidencia de cualquier carácter que no esté seguido directamente por ninguna de las alternativas (token codicioso moderado)
  • ) Cerrar grupo 2
  • \b(cat|apple)\b Captura el grupo 3 , haz coincidir gato o manzana entre los límites de las palabras

Demostración de expresiones regulares

Vea una versión de patrón no codicioso para no capturar los espacios circundantes en el grupo 2.

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