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

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

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 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!