77
символам слова 'Chapter', потому что они следуют непосредственно за границей
слова: "\bCha"
Позиция оператора '\b' здесь очень критична. Если он расположен в
начале строки, которая будет соответствовать, соответствие будет отыскиваться
в начале слова; если он расположен в конце строки, соответствие будет
отыскиваться в конце слова. Например, следующие выражения соответствуют
'ter' в слове 'Chapter', потому что оператор введен перед границей слова: /ter\b/ и
"ter\b"
Следующее выражение соответствует фрагменту 'apt', если он находится
в 'Chapter', и не соответствует, если фрагмент находится в 'aptitude': "\Bapt"
Это происходит потому, что 'apt' встречается не на границе слова в слове
'Chapter', за то на границе слова в слове 'aptitude'. Для оператора не-границы
слова его позиция не играет важной роли, потому что соответствие не
привязано к началу или концу слова.
Символ вариации '|' используют для того чтобы допустить выбор между
двумя и более вариантами. Расширяя описанное ранее регулярное выражение
для поиска текста заголовков глав, можно изменить его так, что оно станет
соответствовать не только заголовкам глав. Однако, все не так просто и
прямолинейно, как Вы могли бы подумать. При использовании вариации
соответствовать будет самое большое возможное выражение с обеих сторон
символа '|'. Вы могли бы подумать, что следующие выражения для JScript и
VBScript соответствуют или слову 'Chapter' или слову 'Section', за которыми
следует одна или две цифры, и которые встречаются в начале или конце строки:
"^Chapter|Section [1-9][0-9]{0,1}$"
К сожалению, на самом деле выходит, что регулярные выражения,
показанные выше, соответствуют или слову 'Chapter' в начале строки, или слову
'Section' в конце строки, независимо от того, следуют ли за этим словом цифры.
Если входная строка - 'Chapter 22' тогда выражение, показанное выше,
соответствует только слову 'Chapter'. Если входная строка - 'Section 22', тогда
выражение соответствует 'Section 22'. Но это не совсем то, что мы хотели