|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 18 Aug 2000 19:11:34 To : Eugeniy Muran' Subject : Re: навеяло (regex) -------------------------------------------------------------------------------- <Eugeniy_Muran'@f13.n4623.z2.fidonet.org> wrote: EM> P.S. Кто нибудь может мне по русски рассказать о операорах: ?:, ?!, ?= и EM> т.д. и когда они используются. Вот это, пожалуй, будет полезно... Слай, сохрани, что ли?.. (?:pattern) - это почти (pattern). В норме круглые скобки выполняют одновременно две функции - группируют то, что у них внутри, чтобы можно было использовать повторители (*, ?, +), и сохраняют то, что там получилось, в переменных $1, $2, ... (?:pattern) выполняет только первую функцию. Что несколько ускоряет работу (пропорционально количеству откатов, проходящих через границу выбранной группы) и уменьшает количество переменных. (?=pattern) - загляд вперед. Отличается от просто pattern тем, что после успешного нахождения соответствия позиция в строке будет не после соответствующего куска, а перед ним. (?!pattern) - отрицательный загляд вперед. Отличается от предыдущего тем, что pattern найтись HЕ должен. Вторые оба наиболее осмысленны, когда привязаны к чему-нибудь (^, \G, просто предшествующему шаблону). Hо в некоторых ситуациях осмысленны и сами по себе. А нововведений 5.005 (?<=, ?<!, ?{ code }, ?>, ?(condition)yes-pattern|no-pattern) я и сам еще не использовал. Впрочем, я вообще интенсивно пользуюсь только ?:... -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/17121894a7ebb.html, оценка из 5, голосов 10
|