78
реализовать, и здесь должен быть способ сделать так, чтобы регулярное
выражение стало более чувствительным к нашим запросам и такой способ
действительно существует.
Вы можете использовать круглые скобки для ограничения области
действия вариации, то есть для получения уверенности, что она применяется
только к этим двум словам, 'Chapter' и 'Section'. Однако, круглые скобки тоже не
так просты, потому что они кроме того используются и для создания
подвыражений (но это будет описано далее в соответствующем разделе
справки). Используя регулярные выражения, показанные выше и добавляя
круглые скобки в нужных местах, Вы сможете заставить регулярное выражение
соответствовать и 'Chapter 1' и 'Section 3'.
Следующие регулярные выражения используют круглые скобки для
группировки слов 'Chapter' и 'Section', поэтому выражение будет работать
должным образом.
"^(Chapter|Section) [1-9][0-9]{0,1}$"
Эти выражения работают нормально, но при этом обладают интересным
побочным эффектом. Когда мы помещаем 'Chapter|Section' внутрь круглых
скобок, мы организуем требуемую группировку, но кроме того это приводит к
тому, что одно из найденных соответствий будет сохранено (захвачено) для
будущего использования. Так как в выражениях, показанных выше,
присутствует только один набор с круглыми скобками, как следствие у нас
будет только одно найденное подсоответствие. Впоследствии можно будет
ссылаться на него, используя коллекцию в VBScript.
Иногда сохранение подсоответствия желательно, иногда - нет. В
примерах, показанных выше, все, что Вы действительно хотите сделать - это
использовать круглые скобки для создания альтернативного выбора между
словами 'Chapter' и 'Section'. Вы не обязательно хотите ссылаться позже на это
соответствие. Фактически, до того момента, когда вам действительно
понадобится сохранять подсоответствия, не пользуйтесь этой возможностью.
Ваши регулярные выражения будут более эффективны, так как они не будут