Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Строковые операции на Перле - в нижний регистр, Строковые операции на Перле 
:(
    Опции темы
californie
Дата 21.9.2005, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



Подскажите, какой функцией перевести строку в нижний регистр?

PM MAIL   Вверх
Sadok
Дата 21.9.2005, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



perldoc -f lc

для кирилици наверняка потребуется еще и use locale
PM   Вверх
chaos
Дата 21.9.2005, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



можно и так
tr /A-Z/a-z/
PM WWW   Вверх
californie
Дата 21.9.2005, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



есть переменная $var1
там большие буквы. Надо сделать маленькими.
Как?
tr? куда tr? tr($var1)???
PM MAIL   Вверх
sharq
Дата 21.9.2005, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Perl Liker
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 13.12.2004
Где: Ростов-на-Дону

Репутация: 23
Всего: 28



Цитата(Sadok @ 21.9.2005, 09:59)
perldoc -f lc

для кирилици наверняка потребуется еще и use locale


smile



--------------------
[color=gray]There's More Than One Way To Do It[/color]
PM MAIL WWW ICQ Skype   Вверх
chaos
Дата 21.9.2005, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(californie @ 21.9.2005, 09:40)
есть переменная $var1
там большие буквы. Надо сделать маленькими.
Как?
tr? куда tr? tr($var1)???


Код

$var1 =~ tr/A-Z/a-z/;


Это сообщение отредактировал(а) chaos - 21.9.2005, 10:59
PM WWW   Вверх
californie
Дата 21.9.2005, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



$var1 =~ tr/A-Z/a-z/;
НЕ работает!
PM MAIL   Вверх
chaos
Дата 21.9.2005, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



Цитата(californie @ 21.9.2005, 11:33)
$var1 =~ tr/A-Z/a-z/;
НЕ работает!

что не работает ???

вот тебе наглядный пример
Код

#!/usr/bin/perl -w
use strict;

my $var1 = "ABCDEFGHIJKLMNOP";
my $var2 = "abcdefghijklmnop";
$var1 =~ tr/A-Z/a-z/;
$var1 ne $var2 ? print "ERROR!!!!!\n" : print "$var1\n";



PS не говори только что в этом примере тоже ченить не работает!!!

Это сообщение отредактировал(а) chaos - 21.9.2005, 14:27
PM WWW   Вверх
Sadok
Дата 22.9.2005, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 74
Регистрация: 2.11.2004

Репутация: 1
Всего: 2



chaos
могу спорить, там не латиница smile
PM   Вверх
californie
Дата 22.9.2005, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



у меня латиница.
$var1=...
потом делаю так:
$var1 =~ tr/A-Z/a-z/;
потом:
print "$var1";
и ...ничего не работает! буквы как были большие так и остались

PM MAIL   Вверх
californie
Дата 22.9.2005, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 15.9.2005

Репутация: нет
Всего: нет



вот код из тестовой попытки:

<html>
<form method=post action="cgi-bin/test_hid.cgi">
<input type=text value="TEST1" name=text>
<input type=hidden value="test2" name=hid>
<input type=submit>
</form>
</html>

#! /usr/local/bin/perl
print "Content-Type: text/html\n\n";
use CGI qw(param header);
$var1=param('text');
$var2 =param('hid');
print "VAR1: $var1";
print "<p>";
print "VAR2: $var2";


ПЕЧАТАЕТ БОЛЬШИМИ БУКВАМИ!!!!
PM MAIL   Вверх
korob2001
Дата 22.9.2005, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



Млин, ребята вы что делаете?? smile Не меняйте регистр транслитерацией, это не рекомедуется делать вообще, в каждом учебнике написано, этим пользовались только в первых версиях Perl, так как других средств тогда не было. Попробуй запусти такой код:
Код

#!/usr/bin/perl -w
use strict;

my $str = "tHiS IS A pErl prOGraMm";

# Переводим всю строку в верхний регистр
$str = uc( $str );
print $str, "\n";

# Опускаем в нижний регистр первый символ предложения
$str = lcfirst( $str );
print $str, "\n";

# Переводим всю строку в нижний регистр
$str = lc( $str );
print $str, "\n";

# Поднимаем в верхний регист первый символ предложения
$str = ucfirst( $str );
print $str, "\n";

# Напишем каждое слово с большой буквы
$str =~ s/(\w+)/ucfirst( lc( $1 ) )/eg;
print $str, "\n";


#########################################################
# Теперь воспользуемся escape-последовательностями      #
#########################################################
print "\n\nEscape\n\n";

# Поднимаем регистр всей строки escape-последовательностями
print "\UtHiS IS A pErl prOGraMm\n";

# Опустим всю строку в нижний регистр, а первый символ
# переведём в верхний регистр
print "\u\LtHiS IS A pErl prOGraMm\n";

# Теперь сделаем тоже самое, толко наоборот, всю строку
# в верхний регистр, а первый символ в нижний
print "\l\UtHiS IS A pErl prOGraMm\n";

# Переведём всю строку в нижний регистр, а первые два слова
# в верхний.
print "\UtHiS IS\E\L A pErl prOGraMm\n";



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Гость_Shrek
Дата 17.10.2005, 10:44 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не вопрос, а вот как то же самое но с кириллицей? smile
  Вверх
korob2001
Дата 17.10.2005, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 31
Всего: 61



В начало кода добавь такую строку:
Код

use locale;

Если не поможет, тогда добавь ещё парочку строк, так же в начало:
Код

use POSIX qw(locale_h);
setlocale(LC_CTYPE, "Russian_Russia.1251"); 



--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Usya
Дата 11.12.2005, 07:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 7.6.2005

Репутация: нет
Всего: нет



korob2001, я случайно наткнулся на это

Цитата
Не меняйте регистр транслитерацией, это не рекомедуется делать вообще...


Можешь пояснить?
--------------------
Я не волшебник, я только учусь...
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.