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

282
Vistas
How to regex match words with/without hyphen

I'm having a lot of difficulties matching strings in JavaScript using regex. Problem is when I match strings like "assistant-attorney" with "attorney" it returns true. I cannot ignore/forbid hyphens, as I also want to be able to match "assistant-attorney" with "assistant-attorney" and also get true. Can't figure out if I should use word boundaries, or check if string does not start with white space or hyphen.

What I have so far is this:

([^-])(attorney)

Here's a test: https://www.regextester.com/?fam=121381

Hope anyone can help, thanks in advance.

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

0

I think you need to use word boundaries and enhance them with additional requirements:

(?<=^|[^-])\battorney\b(?=[^-]|$)
  • (?<=^|[^-]) - assert that behind me is the start of a line or is not a hyphen
  • \b - word boundary
  • attorney - the search term
  • \b - word boundary
  • (?=[^-]|$) - assert that in front of me is not a hyphen or is the end of a line

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

assistant-attorney - https://regex101.com/r/2tvU1n/1

about 4 years ago · Juan Pablo Isaza Denunciar

0

I think a simple Negative Lookbehind group could do the trick

(?<!-)attorney

Negative Lookbehind (?<!-) Assert that the Regex below does not match

UPDATE

As @MonkeyZeus said, the first version failed on attorneys and fakewordwithattorneyinit

The new regexp is using negative lookbehind and negative lookahead look like this :

\b(?<!-)attorney(?!-)\b if you want to match in all string enter image description here

^\b(?<!-)attorney(?!-)\b if you want to match "line begins with term"

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

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