Регулярные выражения - метасимволы \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, а используйте другие символы или комбинации символов.

Примеры

// Используйте \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, также является утверждением нулевой ширины и сопоставляет только позиции, а не сами символы.

Примеры

// Используйте \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('Совпадающее содержимое не найдено!');
}

Попробуйте »

正则表达式 - 元字符Регулярные выражения - метасимволы

Другие расширения