Ответ 1
Вы можете попробовать: \sBlah\s
.
Или, если вы разрешаете начало и конец якоря, (^|\s)Blah(\s|$)
Это будет соответствовать "Blah"
самостоятельно или каждый Blah
в "Blah and Blah"
См. также
- regular-expressions.info/Character classes и Anchors
-
\s
означает символ пробела. - Каретка
^
соответствует позиции перед первым символом в строке - Аналогично,
$
соответствует сразу после последнего символа в строке
-
Вариант Lookahead
Если вы хотите сопоставить оба Blah
в "Blah Blah"
, то, поскольку одно пространство "разделяется" между двумя вхождениями, вы должны использовать утверждения. Что-то вроде:
(^|\s)Blah(?=\s|$)
См. также
Только захват Blah
Вышеупомянутое регулярное выражение также будет соответствовать ведущему пробелу.
Если вы хотите только Blah
, в идеале, lookbehind было бы хорошо:
(?<=^|\s)Blah(?=\s|$)
Но поскольку Javascript не поддерживает его, вы можете вместо этого написать:
(?:^|\s)(Blah)(?=\s|$)
Теперь Blah
будет записано в \1
без начального пробела.