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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярка, Помогите с оптимизацией 
V
    Опции темы
nankko
  Дата 23.6.2010, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток.

Есть код - работает. Обожаю perl, но работа связанна с другим. Практики очень мало :( Разбираюсь сам, вопрос к опытным.

Код

my $reg = "C:/DEV/PYTHON/Scripts/catchKill.py:";
$reg =~ s/(.*)\/(.*):/$2/;
print "\n$2";


Интересует часть поиска - (.*)\/(.*):. Правильно написана? Можно попроще? Любой критике буду рад. Спасибо.
PM MAIL   Вверх
Suppir
Дата 23.6.2010, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Смотря что вам нужно получить?
PM MAIL   Вверх
nankko
Дата 23.6.2010, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

my $reg = "C:/DEV/PYTHON/Scripts/catchKill.py:";
$reg =~ s/(.*)\/(.*):/$2/;
print "\n$reg";


так правильней))) 

получить хочу - catchKill.py
PM MAIL   Вверх
dva300
Дата 24.6.2010, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(nankko @ 23.6.2010,  21:08)
Код

my $reg = "C:/DEV/PYTHON/Scripts/catchKill.py:";
$reg =~ s/(.*)\/(.*):/$2/;
print "\n$reg";


так правильней))) 

получить хочу - catchKill.py

если точек больше не будет то так 
Код

print $1 if ($reg=~/(\w+\.\w+)/);


для пущей грамотности можно еще так

Код

print $1 if ($reg=~/(\w+\.\w+)\:$/);


или split-ом 
Код


my @mas = split(/\//,$reg);
$mas[$#mas] =~ s/\://;
print $mas[$#mas];

--------------------
Участник движения Культура Вождения
PM   Вверх
migaro
Дата 28.6.2010, 04:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Юзай модули File::Basename и File::Spec  smile 

Например:

Код

use File::Basename qw/ basename /;

my $path = "/usr/bin/perl";

my $basename = basename $path;    # переменная $basename получает значение "perl".. =)


Все просто.. + так переносимее..  smile 
Эти модули включены в стандартную поставку Perl и ничего доставлять не нужно..  smile 

Это сообщение отредактировал(а) migaro - 28.6.2010, 04:22
PM MAIL   Вверх
nankko
Дата 5.7.2010, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



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


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

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


 




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


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

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