значения специальных переменных будут распределены
значения специальных переменных будут распределены следующим образом:
$' — aaab
$& - bb
$' - cccddd I
Данную конструкцию назовем регулярным выражением с положительным предусловием. _/
(?<!pattern)
Конструкция (?<! pattern) в регулярном выражении задает условие, что предыдущий фрагмент текста не должен удовлетворять образцу pattern. Найденный фрагмент не запоминается в переменной $&. Образец pattern должен иметь фиксированную длину, т. е. не содержать множителей.
В нашем примере в результате операции поиска
$str =~ m/(?<!b)c+/;
специальные переменные получат следующие значения:
$' — aaabbbc $& — ее $' - ddd
Данную конструкцию будем называть регулярным выражением с отрицательным предусловием.
(?imsx-imsx)
Задание флагов операции сопоставления с образцом осуществляется в самом образце. Флаги модифицируют выполнение операции и обычно являются частью синтаксиса самой операции. Расширенная конструкция (?imsx-imsx) позволяет задать флаги операции внутри самого образца. Эта возможность может быть полезной, например, в таблицах, когда разные элементы таблицы требуется по-разному сопоставлять с заданным образцом, например, некоторые элементы — с учетом регистра, другие — без учета. Допустимыми являются следующие флаги.
i — поиск без учета регистра;
dm — строка трактуется как мульти-строка, состоящая из нескольких строк, разделенных символом новой строки;
s — строка трактуется как одна строка, в этом случае метасимволу "." соответствует любой одиночный символ, включая символ новой строки;
х — разрешается использовать в образцах пробелы и комментарии. При использовании флага х пробелы в образцах игнорируются. Признаком комментария является символ #, как и в основном тексте Peri-программы. Пробелы позволяют сделать образец более читаемым.
Одна из литер i, m, s, x после знака "-" обозначает отмену соответствующего флага.
При помощи данной расширенной конструкции можно задать, например, следующий образец
/(?ix) peri # игнорирование регистра при поиске/
Флаг i предписывает не учитывать регистр в операциях сопоставления с образцом, так что образцу будет соответствовать и слово peri, и слово Perl. Флаг х позволяет выделить слово "peri" пробелами и использовать в образце комментарий. И пробелы, и комментарий не будут учитываться в операции сопоставления с образцом.
Содержание Назад Вперед