Regex ?: Operator – What Does It Do?

regex

I have a regex that looks like this

/^(?:\w+\s)*(\w+)$*/

What is the ?:?

Best Answer

It indicates that the subpattern is a non-capture subpattern. That means whatever is matched in (?:\w+\s), even though it's enclosed by () it won't appear in the list of matches, only (\w+) will.

You're still looking for a specific pattern (in this case, a single whitespace character following at least one word), but you don't care what's actually matched.

Related Question