|
Регулярные выражения. Часть 2Автор: Дроздовский Михаил 3.Отрицание. Если перед определенным символом или выражением в регулярном выражении поставить ^ ("птичку"), то этот символ или выражение преобретут обратный смысл. Пример:
$peremennaya =~ /^(Some|Else|Third)Str/;
В этом случае поиск будет успешным, если будет найдено все, содержащее Str, но не содержащее Some, Else или Third
4.Замена произвольного символа. Допустим, нам нужно найти в строке соответствие со словом, состоящим из 5 букв и оканчивающимся на illy (это может быть, например Billy). Но писать класс произвольного символа (что-то вроде [abcdef ... 890]) не хочется. Что же делать? Можно просто заменить первый символ точкой (.), которая в регулярных выражениях означает любой символ:
$peremennaya =~ /.illy/;
5.Что, кроме поиска, можно сделать с регулярными выражениями? С помощью регулярных выражений можно делать замену, транслитерацию, и даже записывать найденные подстроки в переменные (этому посвящен отдельный шестой пункт).
Делаем замену с помощью регулярных выражений: m/что заменяем/чем заменяем/ . Пример:
$peremennaya =~ /.illy/Billy/;
Делаем транслитерацию с помощью регулярных выражений: tr/что заменяем/чем заменяем/ . Пример:
$peremennaya =~ tr/ABC/XYZ/;
Заменит в $peremennaya A на X, B на Y, С на Z.
6.Сохраняем результаты в отдельную переменную. Использование скобок имеет еще одну особенность - результаты поиска сохраняются в переменные $1, $2 итд. Пример:
$peremennaya =~ /^(Some|Else|Third)Str(.)/;
Результат от поиска (т.е. Some, Else или Third) сохранится в переменной $1, а символ за Str - в переменной $2.
---
Это была последняя часть статьи про регулярные выражения. Какая-то эклектика получилась. Может третью часть напишу :)
|