Регулярные выражения - метасимволы \b и \B
Регулярные выражения - метасимволы
\bи\BЭто два специальных метасимвола в регулярных выражениях, используемые для сопоставления границ слов.
Граница слова \b
В регулярных выражениях,\b— это специальный метасимвол, обозначающий границу слова. Он соответствует позиции в начале или конце слова, не сопоставляя при этом никаких реальных символов.
В частности,\bон соответствует одной из следующих трёх ситуаций:
- Начало слова: если
\bон стоит перед буквой или цифрой, или в начале строки, он соответствует начальной позиции слова. - Конец слова: если
\bон стоит после буквы или цифры, или в конце строки, он соответствует конечной позиции слова. - Внутри слова: если
\bон стоит между двумя последовательными буквами или цифрами, он ни с чем не совпадёт, потому что здесь нет границы слова.
Ниже приведены некоторые примеры использования метасимвола\b:
- Регулярное выражение
\bword\bСоответствует целому слову "word", но не "words" или "sword". - Регулярное выражение
\b\d+\bСоответствует целому числу, например, "123", но не "abc123". - Регулярное выражение
\b[A-Z]+\bСоответствует целому слову, состоящему из заглавных букв, например, "HELLO", но не "hello".
Следует отметить, что\b— это утверждение нулевой ширины. Оно не соответствует реальным символам, а только позициям. Поэтому, когда вы хотите сопоставить реальный символ, не используйте\b, а используйте другие символы или комбинации символов.
Примеры
var patternWord = /\bword\b/;
var textWord = 'This is a word in a sentence.';
if (patternWord.test(textWord)) {
document.write('Найдено совпадающее слово:', patternWord.exec(textWord)[0]);
} else {
document.write('Совпадающее содержимое не найдено!');
}
Попробуйте »
Не граница слова \B
В регулярных выражениях,\BДа\b— это противоположный символ, обозначающий не границу слова, т. е. совпадение позиций, которые не находятся на границах слов.
В частности,\Bон соответствует одной из следующих ситуаций:
- Внутри слова: если
\Bон находится между двумя последовательными буквами или цифрами, он совпадает с позицией между этими двумя символами, указывая на то, что они не являются границами слов. - Не в начале или конце слова: если
\Bон находится перед буквой или цифрой либо после них и соответствует этой позиции, указывая, что это не начало и не конец слова.
Ниже приведены некоторые примеры использования метасимвола\B:
- Регулярное выражение
\Bword\BСовпадает с "word" в "sword1", но не с "password" или "words". - Регулярное выражение
\B\d+\BСовпадает с "123" в "abc123def", но не с "123" или "abc123". - Регулярное выражение
\B[A-Z]+\BСовпадает с "ELL" и "ORL" в "HELLO WORLD", но не с "HELLO" или "WORLD".
Следует отметить, что, в отличие от\b,\B, также является утверждением нулевой ширины и сопоставляет только позиции, а не сами символы.
Примеры
var patternWord = /\Bword\B/;
// Этот вариант совпадает
var textWord = 'This is a password123 in a sentence.';
// Этот вариант не совпадает
//var textWord = 'This is a password in a sentence.';
if (patternWord.test(textWord)) {
document.write('Найдено совпадающее слово:', patternWord.exec(textWord)[0]);
} else {
document.write('Совпадающее содержимое не найдено!');
}
Попробуйте »