Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вытащить строку

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Puschistic
Отправлено: 07 Октября, 2009 - 08:31:45
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




всем доброго времяни суток!!!! я только начал разбираться с регулярками и вот что не вкурю как мне вытащить из вот такого блока
#####
# Budennogo-2-45
# Grencner-ZHanna-Nikolaevna
# Dog. 1596
# vg_id 2135
# modemid 684
# Comments:
host S-Budennogo_B-2_Kv-45_P-4-1_D-15 96 {
hardware ethernet 00:19:5B:EA:27:5F;
fixed-address 10.1.37.83;
}

вот это S-Budennogo_B-2_Kv-45_P-4-1_D-15 96 все что я пробовал давало такой результат
host S-Budennogo_B-2_Kv-45_P-4-1_D-1596 никак не могу избавится от этого хвоста помогите плииз...
 
 Top
Champion Супермодератор
Отправлено: 07 Октября, 2009 - 08:35:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Напиши сюда свой шаблон.
 
 Top
Puschistic
Отправлено: 07 Октября, 2009 - 08:48:49
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




host(?=(.*) )
(Добавление)
в регулярках можно делать пропуск символов? т.е. примерно так начало строки пропуск несколько символов взять все до пробела....
 
 Top
Champion Супермодератор
Отправлено: 07 Октября, 2009 - 09:02:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Твоей регулярке соответсвует "host", после которого любое количесво любых символов.
В пропуске нескольких символов от начала строки в твоем случае смысла нет. Если только именно пробелов.

Попробуй так:
preg_match(/^\s*host(.*)$/i, $src, $matches);
var_dump($matches);
 
 Top
Puschistic
Отправлено: 07 Октября, 2009 - 10:22:47
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Сент. 2009  


Помог: 0 раз(а)




вот что выводит array(0) { }
 
 Top
Champion Супермодератор
Отправлено: 07 Октября, 2009 - 11:19:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Всё нормально выводит:
PHP:
скопировать код в буфер обмена
  1. $src = '#####
  2. # Budennogo-2-45
  3. # Grencner-ZHanna-Nikolaevna
  4. # Dog. 1596
  5. # vg_id 2135
  6. # modemid 684
  7. # Comments:
  8. host S-Budennogo_B-2_Kv-45_P-4-1_D-15 96 {
  9. hardware ethernet 00:19:5B:EA:27:5F;
  10. fixed-address 10.1.37.83;
  11. }';
  12. preg_match('/^\s*host(.*)$/im', $src, $matches);
  13. var_dump($matches);

Или если построчно, то первый вариант (без m в шаблоне)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB