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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Разделение строки, Разделение строки по определенному прави 
:(
    Опции темы
Aleshka
Дата 10.12.2007, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть такая строка:
Jul 19 22:36:19 gups:  Peer name: "user_lesha"
Мне нужно из данной строки выбрать подстроку которая стоит до второго двоеточия. Т.е Jul 19 22:36. Как мне это сделать думал использовать split, но не соображу какое регулярное выражение я должен указать чтобы выбор происходил по второму двоеточию.  
 


PM MAIL ICQ   Вверх
amg
Дата 10.12.2007, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

$str = 'Jul 19 22:36:19 gups:  Peer name: "user_lesha"';
$res = join ':', (split /:/, $str)[0,1];
($res) = $str =~ /^([^:]*:[^:]*):/;
$res = substr $str, 0, 12;

PM MAIL   Вверх
Aleshka
Дата 10.12.2007, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо amg, это то что нужно. А можно подробней узнать про второй вариант 
Код

$res = join ':', (split /:/, $str)[0,1];
подробней рассказать, как оно работает?
PM MAIL ICQ   Вверх
amg
Дата 10.12.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Aleshka @  10.12.2007,  12:29 Найти цитируемый пост)
подробней рассказать, как оно работает?
Это не самый удачный вариант, привел я его исключительно потому, что было упомянуто слово split. Работает следующим образом:
Код

$str = 'Jul 19 22:36:19 gups:  Peer name: "user_lesha"';
@array = split /:/, $str;
@array_slice = @array[0,1];
$res = join ':', @array_slice;



Это сообщение отредактировал(а) amg - 10.12.2007, 12:46
PM MAIL   Вверх
Aleshka
Дата 10.12.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А понял, Вы уж простите, может Вам вопросы кажутся простыми но я не очень силен в perl. Особенно сложны для моего понимания  регулярные выражения. Просмотрел третий вариант кода 
Код

($res) = $str =~ /^([^:]*:[^:]*):/;

В этом  коде вроде все понятно, но не понял последнее предназначение ":" после ).   Спасибо. 

Это сообщение отредактировал(а) Aleshka - 10.12.2007, 13:23
PM MAIL ICQ   Вверх
amg
Дата 10.12.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Aleshka @  10.12.2007,  13:22 Найти цитируемый пост)
не понял последнее предназначение ":" после )
В принципе, это двоеточие не обязательно. Оно чуть увеличивает надежность. Без него, например, подойдет строка "http://www.yandex.ru", а с ним - нет.

PM MAIL   Вверх
Aleshka
Дата 10.12.2007, 14:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо, amg за ответы. Эх, не могу я вам поставить +. :(.
PM MAIL ICQ   Вверх
nitr
Дата 10.12.2007, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Поставил "+" , но за другие заслуги больше, чем за этот пост ;)


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


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

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


 




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


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

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