Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Overlapping: 123 234 345 456 567 678 789 890
Идем дальше: совпадение с любым символом, т.е. точка (.), например:
$string = "secret password";
$string =~ s/./*/g;
print $string;
Хоть * – это квантификатор, но в данном случае предшествующего элемента нет, поэтому используется лексическое значение и результат такой:
**************
Но мнимый символ точка не совпадает с символом переноса строки, вот пример:
$string = "some text new string";
$string =~ s/./*/g;
print $string;
Вот вывод программы:
*********
**********
Как видите, перенос строки остался, чтобы разрешить точке совпадать с переносом строки, нужно добавить модификатор s и все:
$string = "some text new string";
$string =~ s/./*/gs;
print $string;
Результат:
********************
То, что нужно...
Проверяем, в строке $string больше 80 символов или нет:
$string = "simple text";
$_ = $string;
if(/.{80,}/){
print "Length of text is OK";
}else{
print "Length of text isn't OK";
}
Теперь поговорим о квантификаторах.
$string = "It is some text!!!!!!!!!!!!!!!!!";
$string =~ s/!+/!/;
print $string;
В этом случае вывод будет таков: It is some text!
Квантификатор + означает одно или более совпадений, но т.к. квантификаторы количества изначально являются «жадными» (о жадности квантификаторов ниже), то в данном случае квантификатор + заменит самую длинную последовательность восклицательных знаков, а вот если поставить этот квантификатор – *, то в первом случае он отработает также, но если строку заменить на эту:
$string = "It is some text";
Тогда результат будет следующим: !It is some text
Удивлены? Да, именно такой результат и будет, (не забыли – квантификатор * означает ноль или более совпадений), т.к. в данном случае нет восклицательных знаков, то он удовлетворяется нулем.
Теперь посмотрим, если нужно определенное количество символов, например:
$string = "It is some text!!!!!!!!?!!!!!!!!";