23
Регулярные выражения в Perl 5.14 Black Perl, 2011

Regular expressions in Perl 5.14

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Regular expressions in Perl 5.14

Регулярные выраженияв Perl 5.14

Black Perl, 2011

Page 2: Regular expressions in Perl 5.14

Модификатор /r

Page 3: Regular expressions in Perl 5.14

5.12

my @in = ( qw(alpha beta gamma) );my @out = map { s/a/Z/g } @in;

@in = ( 'ZlphZ', 'betZ', 'gZmmZ' );@out = ( 2, 1, 2 );

Page 4: Regular expressions in Perl 5.14

5.14

my @in = ( qw(alpha beta gamma) );my @out = map { s/a/Z/gr } @in;

@in = ( 'alpha', 'beta', 'gamma' );@out = ( 'ZlphZ', 'betZ', 'gZmmZ' );

Page 5: Regular expressions in Perl 5.14

/r

• Работает с копией, а не ссылкой• Возвращает результат замены, а не

количество совпадений

Page 6: Regular expressions in Perl 5.14

5.12

my $in = 'Lorem ipsum';my $out = $in =~ tr/a-z/A-Z/;

$in = 'LOREM IPSUM';$out = 9;

Page 7: Regular expressions in Perl 5.14

5.14

my $in = 'Lorem ipsum';my $out = $in =~ tr/a-z/A-Z/r;

$in = 'Lorem ipsum';$out = 'LOREM IPSUM';

Page 8: Regular expressions in Perl 5.14

Модификаторы по умолчанию

Page 9: Regular expressions in Perl 5.14

use re '/sx';no re '/s';use re '/i';

use re '/ix';use re qw(/i /x);

Page 10: Regular expressions in Perl 5.14

{ use re '/i'; say 'Black Perl' =~ qr/perl/ ? 1 : 0; outside();}

sub outside { say 'Black Perl' =~ qr/perl/ ? 1 : 0;}

10

Page 11: Regular expressions in Perl 5.14

use re '/i';say 'Black Perl' =~ qr/perl/ ? 1 : 0;say 'Black Perl' =~ qr/(?^:p)erl/ ? 1 : 0;

10

Page 12: Regular expressions in Perl 5.14

use re '/flags';

• Используются флаги, применяемыек выражению, а не оператору(нельзя /g, /c , /r)

• Ограничено лексической областью видимости

• Можно указывать несколько флагов: /ixs• Можно локально отменять в

подвыражении: (?^:)

Page 13: Regular expressions in Perl 5.14

Преобразование в строку

Page 14: Regular expressions in Perl 5.14

5.12

my $black = qr/B l a c k/x;my $perl = qr/Perl/;

my $any = qr/$black|$perl/;say $any;

(?-xism:(?x-ism:B l a c k)|(?-xism:Perl))

Page 15: Regular expressions in Perl 5.14

5.14

my $black = qr/B l a c k/x;my $perl = qr/Perl/;

my $any = qr/$black|$perl/;say $any;

(?^:(?^x:B l a c k)|(?^:Perl))

Page 16: Regular expressions in Perl 5.14

5.12 (?-xism:(?x-ism:B l a c k)|(?-xism:Perl))

5.14 (?-xismudal: . . .)

5.14 (?^:(?^x:B l a c k)|(?^:Perl))

Page 17: Regular expressions in Perl 5.14

Преобразование в строку

• Забудьте• Всё и так было хорошо, а стало ещё лучше

Page 18: Regular expressions in Perl 5.14

Модификаторы /a, /d, /l и /u

Page 19: Regular expressions in Perl 5.14

/l use locale;

/u use feature 'unicode_strings';

/a /u, кроме классов \d, \w, \s...

/d no locale;no feature 'unicode_strings';

Page 20: Regular expressions in Perl 5.14

use feature 'unicode_strings';

no feature 'unicode_strings';

Page 21: Regular expressions in Perl 5.14

Символьный класс \d

4 ௧ ੭ ٣ ૪

/a, /aa

Page 22: Regular expressions in Perl 5.14

say ('Z Я' =~ s/\w/_/urg);say ('Z Я' =~ s/\w/_/arg);

_ __ Я

Page 23: Regular expressions in Perl 5.14

Спасибо

Олег Алистратов[email protected]