*   >> Чтение Образование Статьи >> science >> programming

Regex группировки в Perl

$ 9. Давайте посмотрим на примере, прежде чем мы продолжим. Рассмотрим следующий код: использовать строгий; если (". Это одно и то два" = ~ /(one).*(two)/) {печати "Согласованные \\ п"; } Еще {печать "не согласованный \\ п"; } Печати "\\ $ 1:", $ 1 ", \\ п"; печать "\\ $ 2:", $ 2, "\\ п"; Имеющаяся строка "Это один и два." Давайте посмотрим на рисунок. Узор /(one).*(two)/; он будет соответствовать любой суб строку в доступной строки, которая начинается с "один" и заканчивается "два". Следует помнить, что точка, за которой следует звездочка обозначает любой набор символов.

Следует отметить, что имеются две группы в структуре. Эти группы (один) и (два). В доступной строки, у вас есть суб строку, "один", а затем, после некоторого расстояния, у вас есть суб строку "два". Группа (один) соответствует суб строки "один" в доступной строке. Группа "два" соответствует суб строку "два", в доступной строке. Из-за этого совпадения, к югу строка "один" в доступной строке присваивается внутренней переменной $ 1; суб строка, "два" в доступной строке присваивается внутренней переменной, $ 2. В коде, последние два утверждения распечатать значения этих двух переменных.

Если вы никогда не были группы (скобки), согласование будет по-прежнему происходят, но ничего не будет назначать внутренних переменных ($ 1 и $ 2). Другими словами, ничто не будет захвачен. Выход кода: $ 1: $ 2 одним является: двух Вы можете иметь до 9 групп (пар скобок) в шаблоне. Если есть по крайней мере 9 суб строк в доступной строке, что соответствует группам 9 шаблона, то 9 суб строк в доступной строке будет назначен до $ 1, $ 2 ... $ 9 соответственно. Это первая соответствует пойдет $ 1; второй $ 2, третий до $ 3 и так далее.

Это, как вы помните, или захват суб строк в доступной строке после сопоставления. Обратите внимание: если нет группы, то не было бы ничего, чтобы помнить (не назначение не произойдет); нет захвата. Вам не нужно иметь до 9 групп в структуре; Вы можете иметь любое количество меньше. Что о вложенных групп Рассмотрим следующий код: использовать строгий; если ("бухгалтеры, бухгалтер и книги вместе.

" = ~ /книга (хранитель (ы |) |) /) {печати "Согласованные \\ п"; } Еще {печать "не согласованный \\ п"; } Печати "\\ $ 1:", $ 1 ", \\ п"; печать "\\ $ 2:", $ 2, "\\ п"; печать "\\ $ 3:", $ 3, "\\ п"; Выводится выше код: $ 1: $ хранители 2: с $ 3: Модель будет соответствовать "бухгалтеров", "бухгалтер" или "книги". Тем не менее, у нас есть две группы; один внутри другого. Именно эти две группы

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.