Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

$string =~ tr[A-Za-z][]s;

# если второй аргумент пуст, то в него подставляется

# первый аргумент

print $string;

Результат: This is some text

Пример: я скачал книгу, но в ней был такой недостаток: заглавные буквы были инвертированы строчными и наоборот, вот как я справился с этим:

$string = "tHIS iS bUGGY tEXT !!!";

$string =~ tr{A-Za-z}{a-zA-z};

print $string;

Получилось, что надо: This Is Buggy Text !!!

Пересчитываем количество букв в строке:

$string = "Some text";

$count = ($string =~ tr{A-Za-z}{});

print $count;

Результат: 8

Немного изменив выражение, можно подсчитать количество небуквенных символов:

$string = "Some _unique_text_ !!!";

$count = ($string =~ tr{A-Za-z}{}c);

print $count;

Ответ – 8, или вместо диапазона A-Za-z можно подставить 0-9 и тогда, в $count будет количество цифр в строке.

Оператор tr/.../.../ возвращает количество успешных замен, если не было сделано никаких замен – возвращает ноль. Таким образом можно подсчитать количество определенного символа в строке, например, подсчитываем количество буквы i в строке.

$string = "This is some text !";

$count = ($string =~ tr/i/i/);

print $count;

Результат: 2

Если у оператора tr/.../.../ нет модификаторов, тогда ее аргументы должны быть одинаковой длины, а если второй аргумент длиннее первого – он усекается до длины первого аргумента, например:

$string = "Some numbers: 7321";

$string =~ tr/7321/0-9/;

print $string;

Не зная того, что я сказал выше, вы, наверное, хотели заменить цифры 7321 на 0123456789, но результат вот какой: Some numbers: 0123

Т.е. команда tr/7321/0-9/ равна следующей: tr/7321/0123/.

Даже если цифры будут не по порядку, т.е.:

$string = "Some numbers: 7 then 3 then 2 and then 1";

$string =~ tr/7321/0-9/;

Результат будет таким: Some numbers: 0 then 1 then 2 and then 3

Или вот другой пример:

$string = "some text is here";

$string =~ tr/oet/ina/;

print $string;

Вот что получилось: simn anxa is hnrn

То есть к каждому символу в первом аргументе сопоставляется какой-то символ из второго аргумента.

А вот если первый аргумент длиннее второго, тогда последний символ второго аргумента повторяется до тех пор, пока не будет по длине как первый, например, tr/0-9/abc/ это равно tr/0123456789/abcccccccc/, вот так.

Здесь мы рассмотрим множество решений, собранных мной:

Поверяем на правильность адрес электронной почты:


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150] [151]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2016 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100