Подшаблоны |
Наверх Предыдущий Следующий |
Подшаблоны разделяются при помощи круглых скобок, которые могут быть вложенными. Сделав часть шаблона подшаблоном, мы достигаем следующих двух эффектов:
Тот факт, что скобки играют двоякую роль, не всегда полезен. Часто бывает, что захват подстрок не нужен. Если после открывающейся скобки следует "?:", то данный подшаблон не участвует в захвате подстрок и пропускается при подсчете порядковых номеров подстрок. К примеру, если строка "the white queen" совпала с шаблоном the ((?:red|white) (king|queen)) то захваченными подстроками будут "white queen" и "queen" с порядковыми номерами, соответственно, 1 и 2. Максимальное количество захватываемых подстрок равно 99, а максимальное количество подшаблонов равно 200.
Если в начале незахватываемого шаблона требуется установка опций, то, в качестве удобного сокращения, между "?" и ":" можно указывать буквы опций. Таким образом, шаблоны (?i:saturday|sunday) (?:(?i)saturday|sunday) идентичны друг другу. Так как опции влияют на всю оставшуюся справа часть подшаблона и на все ветви альтернатив, с вышеупомянутыми шаблонами совпадет как "SUNDAY" так и "Saturday".
|