Рубрики

Perl | Группировка и Чередование в Regex

Регулярные или регулярные выражения являются важной частью программирования на Perl . Используется для поиска по указанному текстовому шаблону. При этом набор символов вместе образует шаблон поиска. Это также известно как регулярное выражение . Работа с регулярным выражением может стать сложной с большим количеством дополнительных функций. Чтобы уменьшить сложность, Perl предоставляет нам больше операций, таких как чередование и группировка.

перемежаемость

Само название предлагает механизм, который оно делает, в первую очередь, как оператор (&&), который появляется в языке программирования 'C'. Оператор '&&' в C работает до тех пор, пока не обнаружит, что все условные операторы верны, он не вернет 1 и вернет 0, как только найдет ложное утверждение. Чередование в Perl работает в обоих направлениях одновременно. Чередование может быть выполнено с использованием метасимволов '|' или '[]'. Следующие примеры прояснят ситуацию:

Пример 1:

#! / USR / бен / Perl

  
# Инициализация строки и проверка ее
# против нескольких шаблонов поиска

my $str = "geeksforgeeks rocks...";

  
# печатает 1 из-за отсутствия совпадения (= 0)

print "1\n" if (($str =~ /gek|foor/) == 0); 

  
# для поиска слова

if($str =~ /geek|for/) 

{

    print "I found $&.\n";

}
else
{

    print "no match"

}

Выход:

1
I found geek.

Итак, в приведенном выше примере он сначала проверяет «geek» и находит совпадение в первом альтернативном шаблоне, возвращает 1, как только находит совпадение. Но он также проверяет «for», и если его нет в строке, он не будет обеспокоен, так как он уже вернул статус соответствия. Если «for» соответствует, он проверяет, появляется ли «for» в наименьшей позиции строки, поскольку «g» в «geeks» появляется в позиции 0, а «f» в «for» появляется в позиции 5, «geek» 'сохраняется в последнем шаблоне соответствия. Посмотрите на следующий пример:

 $& - Contains the string matched by the last pattern match.

Пример 2:

#! / USR / бен / Perl

  
# Инициализация строки и проверка ее
# против нескольких шаблонов поиска

my $str = "geeksforgeeks rocks...";

print "1\n" if ($str =~ /for|eeks|rock|ge/);

  
# | для поиска слова

if($str =~ /for|eeks|rock|ge/)

{

    print "I found $&.\n";

}

  
# для поиска одного символа

if ($str =~ /[gfrkc]/)

{

    print "$&"

}

Выход:

1
I found ge.
g

Группировка

Группировка используется для поиска шаблона, ограниченного похожими словами или шаблонами, в начале, конце или в середине, а также возвращает наименее расположенный шаблон. Группировка выполняется с помощью метасимвола (). Ниже приведен пример, который прояснит ситуацию:
Пример 1:

#! / USR / бен / Perl
# Инициализация строки и проверка ее
# против нескольких шаблонов поиска

my $str = "Blackbackground Brownbackground";

print "1\n" if ($str =~ /(Bron|Back)[a-z]+/);

if ($str =~ /(Brown|Black)[a-z]+/)

{

    print "I found $&.\n";

}

  
else
{

    print "no match"

}

Выход:

I found Blackbackground.

Для лучшего понимания проверьте следующий пример:

#! / USR / бен / Perl

use warnings;

use strict;

  
# Инициализация строки и проверка ее
# против нескольких поисковых шаблонов

  
# массив строк

my @mail = ('Ab-@gmail.com',

            'd.f@yahoo.com',

            '0b_f@bing.com',

            'jet@hotmail.con',

            's/s@otmail.com');

  

for(@mail)

{

    # шаблон поиска для проверки действительной почты

    # поставщики услуг следуют с '.com'

    print "Valid : $_\n" 

    if($_ =~ /[a-zA-Z0-9-._]+@(gmail|yahoo|bing|hotmail)(.com)$/)

}

Выход:

Valid : Ab-@gmail.com
Valid : d.f@yahoo.com
Valid : 0b_f@bing.com

Рекомендуемые посты:

Perl | Группировка и Чередование в Regex

0.00 (0%) 0 votes