Резюме
\b word boundary
\< word boundary; specifically, word boundary followed by a word; ie, start of word
\> word boundary; specifically, word followed by word boundary; ie, end of word
Если у вас есть такое слово, как «боб», то граница шаблон \b
слово возвратит два нулевых длины матчи, которые эквивалентны в начале и в конце слово. Это полезно, потому что позволяет выбирать слова в строках. Таким образом, строка «foo bar», сопоставленная с \b
, имеет четыре пустых совпадения для начала-начала-начала двух слов.
Основываясь на этом, вы можете видеть, что \<
предоставит вам позиции только начала слов (2 матча для начала foo и начала бара) и \>
концы слов (два матча для конца foo и конца бара).
Таким образом, вы можете приравнять \b
к \<
так:
\<
is equivalent to
start-of-word
is equivalent to
word-boundary-followed-by-word
is equivalent to
\b(?=\w)
Я думаю, что ваш «Mastering Regular Expression» Книга затем немного расплывчит, и описывает \<
и \>
как границы слова, когда оно должно быть более точным и отличать их как «граница слова (специально для начала слова)» и «граница слова (особенно для конца слова)» соответственно.
Python Пример:
>>> re.compile(r'\b').findall('foo bar')
['', '', '', '']
>>> re.compile(r'\b(?=\w)').findall('foo bar')
['', '']
Обратите внимание, что питон не поддерживает \<
и \>
. И вот пример того, почему границы слов полезны. Мы можем выбрать BAR, который является целым словом, а не обернутым внутри foo:
>>> re.compile(r'\bBAR\b').findall('foBARo BAR')
['BAR']
Предлагаю вам попробовать выражения. Вам просто нужен текстовый редактор, консольная программа или один из бесплатных веб-сайтов для их проверки. Помните, что регулярное выражение регулярных выражений зависит от двигателя, то есть от программы. – Smandoli
Какой именно язык? Могут быть небольшие различия между регулярными выражениями языков программирования – ryanyuyu
@Smandoli Спасибо за ваше предложение, но моя цель этого вопроса в теоретическом плане - не практический термин. – fronthem