What are non-word boundary in regex (\B), compared to word-boundary?
A word boundary (\b
) is a zero width match that can match:
\w
) and a non-word character (\W
) orIn Javascript the definition of \w
is [A-Za-z0-9_]
and \W
is anything else.
The negated version of \b
, written \B
, is a zero width match where the above does not hold. Therefore it can match:
For example if the string is "Hello, world!"
then \b
matches in the following places:
H e l l o , w o r l d !
^ ^ ^ ^
And \B
matches those places where \b
doesn't match:
H e l l o , w o r l d !
^ ^ ^ ^ ^ ^ ^ ^ ^ ^