regex help with word boundaries (need exception)

1.5k Views Asked by At

given this text:

hello-world

I can match it with this regex:

hello\-.+?\b

The catch is if I have this:

hello-world-howyadoing

that second dash is consider a word boundary, so the match ends at 'world'

How do I say 'stop at next word boundary UNLESS that word boundary is a dash' in regex?

This is in .js, btw.

2

There are 2 best solutions below

0
On BEST ANSWER

It depends what kind of stuff you're doing, but you can probably just specify the list of word boundaries you're interested in

hello\-[a-zA-Z0-9\-]*

Might accomplish what you want

1
On

I haven't done JS regex's, but I'm pretty sure underscores are actually included as well in words, so the correct set would also include a _ (I don't know if underscores need to be escaped in JS)

hello\-[a-zA-Z0-9\-_]*