[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_match
Начинающий PHP программист
Помогите пожалуйста составить регулярное выражение для функции preg_match. Необходимо чтобы из строчки "This directory /home/site/www is exists...", в одну из меременных выходящего массива, заносилась строчка "/home/site/". Заранее благодарю.



Спустя 5 часов, 27 минут, 40 секунд (10.11.2010 - 12:59) micakult написал(а):
!/[a-zA-Z/\.]+/!

Спустя 47 минут, 13 секунд (10.11.2010 - 13:46) Sanchopansa написал(а):
$str = "This directory /h8ome/s_it-e/www is exists...";
$pattern = '/\/[\w\d\-_\/]*\//';
preg_match($pattern, $str, $match);
echo $match[0];

Спустя 13 часов, 45 минут, 40 секунд (11.11.2010 - 03:32) Начинающий PHP программист написал(а):
Большое спасибо за помощь.

Спустя 1 час, 19 минут, 38 секунд (11.11.2010 - 04:51) kirik написал(а):
Еще вариант:
$txt = 'This directory /home/site/www is exists...';
preg_match('#/\S+/#', $txt, $out);
echo $out[0];
// Result: /home/site/

Можно без регулярок:
$txt = 'This directory /home/site/www is exists...';
echo substr($ms = strstr($txt, '/'), 0, strrpos($ms, '/') + 1);
// Result: /home/site/

или
$txt = 'This directory /home/site/www is exists...';
echo substr($txt, $i = strpos($txt, '/'), strrpos($txt, '/') - --$i);
// Result: /home/site/

Спустя 5 часов, 50 минут, 1 секунда (11.11.2010 - 10:41) Семён написал(а):
Вот тебе по проще:
$str = "This directory /home/site/www is exists...";
$pattern = "|This directory (.*)/www is exists...|U";
preg_match($pattern, $str, $match);
echo $match[1];

Спустя 5 дней, 6 часов, 34 минуты, 45 секунд (16.11.2010 - 17:16) Начинающий PHP программист написал(а):
Хотел бы еще поинтересоваться. Какой из способов достижения поставленной цели быстрее, требует меньше памяти и ресурсов процессора. Примеры с использованием функции preg_match и регулярных выражений, или те, что были написаны пользователем под именем "kirik" с использованием substr(strstr, strrpos). (иногда приходится писать скрипты, требующие выполнения подобных задач в больших объемах. Хотельсь бы знать, использование какого способа позволит более рационально решить поставленные задачи.)

Спустя 5 часов, 44 минуты, 34 секунды (16.11.2010 - 23:01) kirik написал(а):
Начинающий PHP программист
А что мешает провести замеры? microtime() и memory_get_usage() вам помогут wink.gif

Спустя 6 минут, 20 секунд (16.11.2010 - 23:07) Sanchopansa написал(а):
не уверен что я прав, но я где-то читал что функции работы со строками (strpos, str_replace и т.д.) быстрее чем регулярные выражения... но в твоем случае помойму это не существенно.. Или тебе имеет значение юудет ли чтвой скрипт выолнени за 0.00003 сек или за 0.00002 сек?

Спустя 3 часа, 3 минуты, 5 секунд (17.11.2010 - 02:10) kirik написал(а):
Цитата (Sanchopansa @ 16.11.2010 - 15:07)
не уверен что я прав, но я где-то читал что функции работы со строками (strpos, str_replace и т.д.) быстрее чем регулярные выражения...

Строковые функции да, быстрее. Но не всегда удобно их применять.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.