Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

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


Опытный
**


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

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



есть текст
PING ya.ru (213.180.204.8) 56(84) bytes of data.
64 bytes from ya.ru (213.180.204.8): icmp_seq=1 ttl=59 time=1.16 ms

--- ya.ru ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.166/1.166/1.166/0.000 ms

из него нужно получить 
1.166
делаю так
preg_match("/mdev\s+\W+([\d*\.\d*]+)/im",$output,$res);
результатом получаеться
Array ( [0] => mdev = 1.166 [1] => 1.166 ) 
подскажите как сделать чтобы результатом был только один элемент массива.... ? 
PM MAIL   Вверх
ZlojEzh
Дата 14.7.2006, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



насколько я знаю - никак
нулевым элементом всегда идет полное совпадение шаблона

но я не могу представить себе ситуацию, когда это создает проблемы...
какая разница, что писать: $output или $output[1]?..
в крайнем случае появится одна лишняя строчка и одна временная переменная
 
PM MAIL ICQ   Вверх
vasac
Дата 14.7.2006, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



А вообще:
Код

$A = explode( 'mdev = ', $output );
print intval( $A[ 1 ] );
 
PM WWW   Вверх
alligator
Дата 14.7.2006, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(ZlojEzh @  14.7.2006,  20:42 Найти цитируемый пост)
насколько я знаю - никак
нулевым элементом всегда идет полное совпадение шаблона

спасибо 
PM MAIL   Вверх
MPx
Дата 27.7.2006, 01:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вставляй перед условием ?:, тогда идти в массив не будет. 

Код

preg_match_all("/dqwdwqdw(?:.+?)dwqdww(.+?)/",$out,$res);


в массив пойдёт только условие (.+?) 

Это сообщение отредактировал(а) MPx - 27.7.2006, 01:52
PM MAIL ICQ MSN   Вверх
AztEK
Дата 27.7.2006, 08:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Привязались вы к эти регуляркам... Мне вот нравится ф-ция sscanf() smile
Код

$string = <<<TEXT
--- ya.ru ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.166/1.166/1.166/0.000 ms
TEXT;

$scan = <<<TEXT
--- ya.ru ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = %s/%s/%s/0.000 ms
TEXT;

sscanf($string, $scan, $a1, $a2, $a3);
//$a1 == '1.166';
//$a2 == '1.166';
//$a3 == '1.166';
  

Это сообщение отредактировал(а) AztEK - 27.7.2006, 08:39


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
GiV
Дата 27.7.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 13.7.2006
Где: rus|53

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



Цитата(AztEK @  27.7.2006,  08:09 Найти цитируемый пост)
Привязались вы к эти регуляркам... Мне вот нравится ф-ция sscanf()

А по скорости? =) 
PM MAIL WWW ICQ   Вверх
AztEK
Дата 27.7.2006, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Думаю, регулярка проиграет smile Но можно проверить smile 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
GiV
Дата 27.7.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 13.7.2006
Где: rus|53

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



А если строка сменится на 
4 packets transmitted, 0 received, 100% packet loss, time 0ms

Шаблон сканирования сработает? =)

 
PM MAIL WWW ICQ   Вверх
AztEK
Дата 27.7.2006, 18:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Нет. А регулярка? =) 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
GiV
Дата 27.7.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 137
Регистрация: 13.7.2006
Где: rus|53

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



100% сработает =] 
PM MAIL WWW ICQ   Вверх
AztEK
Дата 28.7.2006, 07:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Оу... До меня дошло.
Да, в этом случае регулярки, возможно предпочтительнее smile 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




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


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

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