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

285
Views
Cómo hacer coincidir expresiones regulares con/sin guión

Tengo muchas dificultades para hacer coincidir cadenas en JavaScript usando expresiones regulares. El problema es que cuando hago coincidir cadenas como "asistente de abogado" con "abogado", devuelve verdadero. No puedo ignorar/prohibir los guiones, ya que también quiero poder hacer coincidir "asistente-abogado" con "asistente-abogado" y también ser verdadero. No puedo averiguar si debo usar límites de palabras o verificar si la cadena no comienza con un espacio en blanco o un guión.

Lo que tengo hasta ahora es esto:

 ([^-])(attorney)

Aquí hay una prueba: https://www.regextester.com/?fam=121381

Espero que alguien pueda ayudar, gracias de antemano.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Creo que necesita usar límites de palabras y mejorarlos con requisitos adicionales:

 (?<=^|[^-])\battorney\b(?=[^-]|$)
  • (?<=^|[^-]) - afirmar que detrás de mí está el comienzo de una línea o no es un guión
  • \b - límite de palabras
  • attorney - el término de búsqueda
  • \b - límite de palabra
  • (?=[^-]|$) - afirmar que delante de mí no hay un guión o es el final de una línea

abogado - https://regex101.com/r/HCRKWi/1

abogado asistente - https://regex101.com/r/2tvU1n/1

about 4 years ago · Juan Pablo Isaza Report

0

Creo que un simple grupo de Negative Lookbehind podría hacer el truco.

(?<!-)attorney

Negative Lookbehind (?<!-) Afirma que el Regex a continuación no coincide

ACTUALIZAR

Como dijo @MonkeyZeus, la primera versión falló en los attorneys y fakewordwithattorneyinit

La nueva expresión regular está usando una búsqueda negativa hacia atrás y una búsqueda negativa hacia adelante con este aspecto:

\b(?<!-)attorney(?!-)\b si desea hacer coincidir todas las cadenas ingrese la descripción de la imagen aquí

^\b(?<!-)attorney(?!-)\b si desea hacer coincidir "la línea comienza con el término"

https://regex101.com/r/FToha6/1

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!