You can try: \sBlah\s
.
Or if you allow beginning and end anchors, (^|\s)Blah(\s|$)
This will match "Blah"
by itself, or each Blah
in "Blah and Blah"
See also
- regular-expressions.info/Character classes and Anchors
\s
stands for “whitespace character”.- The caret
^
matches the position before the first character in the string - Similarly,
$
matches right after the last character in the string
Lookahead variant
If you want to match both Blah
in "Blah Blah"
, then since the one space is “shared” between the two occurrences, you must use assertions. Something like:
(^|\s)Blah(?=\s|$)
See also
Capturing only Blah
The above regex would also match the leading whitespace.
If you want only Blah
, ideally, lookbehind would’ve been nice:
(?<=^|\s)Blah(?=\s|$)
But since Javascript doesn’t support it, you can instead write:
(?:^|\s)(Blah)(?=\s|$)
Now Blah
would be captured in \1
, with no leading whitespace.