Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
SairuS Гость
|
Добавлено: Пн Сен 27 2004 12:16 Заголовок сообщения: Regular expression! |
|
|
need help BOYS! Shto za extression ? a to zapor?
~ y/\x20-\x7e//cd;
?
|
|
Вернуться к началу |
|
|
Scaramouch
Зарегистрирован: 11.01.2004 Сообщения: 143 Откуда: Столица нашей Родины
|
Добавлено: Пн Сен 27 2004 13:30 Заголовок сообщения: |
|
|
а где ты его интересно взял???
В первый раз вижу ~y и флаги cd.
А \x20 - это символ с шестнадцатиричным кодом 20 _________________ Ноги - это две лишние руки. |
|
Вернуться к началу |
|
|
FUKS
Зарегистрирован: 14.04.2002 Сообщения: 148 Откуда: Москва
|
Добавлено: Вт Сен 28 2004 11:31 Заголовок сообщения: Re: Regular expression! |
|
|
tr/таблица1/таблица2/cds
y/таблица1/таблица2/cds
Замена всех символов из "таблица1" на соответствующий символ из "таблица2". Результат - количество замен или стираний. Без оператора =~ или != операция выполняется со строкой $_. Для совместимости с программой sed вместо tr можно писать 'y'.
Опции:
c - дополнение "таблица1"
d - стереть найденные, но не замененные символы.
s - "сжать" повторяющиеся замененные символы.
Если указана опция /d таблица2 всегда интерпретируется как положено. Другими словами, если таблица2 короче, чем таблица1, то символ из таблицы1 интерпретируется всегда. Если таблица2 - null, то все символы строки остаются неизменными. Это удобно для подсчета количества символов в строке определенного класса или для сжатия повторяющихся символов, например, пробелов.
Пример: Код: |
$s = "hello"; # Исходная строка $s =~ tr/a-z/A-Z/; # Заменить малые буквы на большие. Результат # 'HELLO'
$s = 'Hel....lo';
$s =~ tr/a-zA-z/_/c; # Заменить все не буквы на '_'
# Результат 'Hel____lo'
$s =~ tr/_/ /s; # Заменить '_' на ' ' и сжать.
# Результат 'Hel lo'
$s =~ tr/a-zA-Z /a-zA-Z/d; # Удалить все не буквы. Результат 'Hello'
|
*****************
Взято с citforum.ru.
SairuS писал(а): |
~ y/\x20-\x7e//cd;
|
Получается "удалить все символы до пробела и после ~" (модификатор /c), и "вернуть количество удалённых символов", только непонятно зачем тут модификатор /d. |
|
Вернуться к началу |
|
|
Scaramouch
Зарегистрирован: 11.01.2004 Сообщения: 143 Откуда: Столица нашей Родины
|
Добавлено: Вт Сен 28 2004 12:33 Заголовок сообщения: |
|
|
от же дурак я, на перле давно не писал
Забыл что у - синоним tr.
Поднимаю лицо _________________ Ноги - это две лишние руки. |
|
Вернуться к началу |
|
|
|