views:

22

answers:

2

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  A: 

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

Jamie Wong
Thanks Jamie. That'll work.
DA
+3  A: 

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\-_]*

Ryan
That works! Almost the same answer as Wong, but I'll have to give him the answer as he beat you to the punch. Thanks!
DA