20. Как ими пользоваться?
Этому учатся всю жизнь. Даже целая книга есть - "Mastering regular
expressions". Также следует прочесть perldoc perlre
А начать можно со следующего:
// - поиск
s/// - поиск и замена
tr/// - трансляция
Если мы хотим узнать, нет ли в строке $_ подстроки 'my', мы пишем:
/my/;
Если мы имеем дело не с переменной по умолчанию, а с любой другой, пишем:
$str=~/my/;
Если мы хотим заменить в строке подстроку tree на root, используем поиск и
замену:
$str=~s/tree/root/;
В конце выражения могут стоять опции g, i и т.п. g означает проводить замену
не 1 раз, а по всей подстроке. i означает не учитывать регистр символов.
В подстроке для поиска можно использовать управляющие символы. Есть
несколько видов управляющих символов - мета-символы, обозначающие какой-то
символ из набора букв, цифр, и т.п., мета-символы, управляющие количеством
символов, и т.п. Hапример, \d в подстроке обозначает любую цифру, \w -
любую букву, \s - пробел, . - любой символ. Стоящая после мета-символа *
означает, что предыдущий символ может повторяться 0 или более раз. + означает
повторение 1 или более раз. То есть, строка вида
$str=~s/\s\d+\s/ 1 /g;
означает "заменить все числа в строке $str, отделенные пробелами с двух
сторон, на цифру 1, отделенную пробелами".
Более подробное описание регулярных выражений, список управляющих символов и
других возможностей смотрите в документации.
<<- А что это за закорючки такие в скрипте - s/^[^\w]{1,3}(\d+)/$1/
->> Как не учитывать регистр в русском тексте? С английским регекспы с ключом i работают, а с русским - нет.
Русский PERL programming FAQ. Часто задаваемые вопросы по программированию на perl [К списку статей] [К оглавлению]