Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
n $* – разрешает выполнять поиск в многострочных файлах (булевая переменная);
n @- – спецмассив, который содержит начальную позицию найденного совпадения;
n @+ – массив, содержащий позицию последнего найденного совпадения.
Вышеперечисленные метасимволы, квантификаторы, мнимые символы, специальные переменные – это та часть статьи, к которой вы будете обращаться чаще всего – поэтому я собрал все вместе.
А далее будем рассматривать более сложные решения задач, с пояснениями.
Начнем с создания регулярных выражений. А более точно со специальных переменных:
$string = "one two three four five";
$string =~ m/three/;
print $`; # результат: "one two "
print $'; # результат: " four five"
print $&; # результат: "three"
# теперь насчет массивов @+ и @-
print $-[0]; # результат: 8
print $+[0]; # результат: 13
# переменные $#-, $#+ указывают на длину @-, @+ соответственно
# с помощью функции substr() можно получить переменные $`, $',
# $&, например
$before_pat = substr($string,0,$-[0]); # аналог $`
$after_pat = substr($string,$+[0]); # аналог $'
$pattern = substr($string,$-[0],$+[0]-$-[0]); # аналог $&
Переменная $^R, пример:
$string = "some text";
$qwer =~ /(?{$var1=2.3;$var2=3.2})/;
print $^R
Результат: 3.2
Переменная $+, пример:
$string = "some text";
$string =~ m/(w+)s+(w+)/;
print $+;
Результат: text
Переменная $*, пример:
$string = "couple of lines goes bellow...";
print $string =~ m/^lines/; # в этом случае пустая строка ""
$*=1; # после присвоения переменной $* истины, результат будет
print $string =~ m/^lines/; # – истина
Используем модификатор e для оператора s/.../.../:
$string = "words don't come easy";
$string =~ s/(w+)/uc($1)/eg;
print $string;
Данный фрагмент кода «поднимает» регистр букв у всех слов из строки $string (глобально), вот что получается: WORDS DON'T COME EASY