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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> аналог у substr, как убрать последние 2 символа? 
:(
    Опции темы
alyam
Дата 13.9.2006, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



но я не получил ответа можно ли в регулярном выражении отбросить слова меньшие чем 3 символа?
PM MAIL   Вверх
nitr
Дата 13.9.2006, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



конечно можно
Код

$str =~ s/\s\S{1,2}\s/ /g;
 вот таким к примеру образом


--------------------
PM   Вверх
alyam
Дата 13.9.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



итого получаем
#!/usr/bin/perl -w
my $str = 'первое на пятидесятое пятое семидесятое';
$str =~ s/\S{1,2}\s/./g;
$str =~ s/\S{1,2}$//;
print $str;

но вот вопрос когда отбрасываем слово меньше 3 символов, как точку не ставить?
PM MAIL   Вверх
nitr
Дата 13.9.2006, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



ой... ты что сделал? smile
вот:
Код

#!/usr/bin/perl -w
my $str = 'первое на пятидесятое пятое семидесятое';
$str =~ s/\s\S{1,2}\s/ /g; #Удаляем "слова" менее 3 символов, т.е. 1символ и 2
$str =~ s/\S{2}\s/./g; #убираем окончания с заменой на точку
$str =~ s/\S{2}$//; #у последнего слова просто удаляем окончание
print $str;



--------------------
PM   Вверх
alyam
Дата 13.9.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ну вот он и анализатор )
единственное что осталось это предусмотреть  случаи когда слова меньше 3 символов в начале  и в конце строки

Это сообщение отредактировал(а) alyam - 13.9.2006, 13:44
PM MAIL   Вверх
nitr
Дата 13.9.2006, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия :)

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



smile))
добавь ещё регулярку после $str =~ s/\s\S{1,2}\s/ /g; (3 строка)
Код

$str =~ s/(^\S{1,2}\s|\s\S{1,2}$)//;



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


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

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


 




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


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

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