Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2012, 16:50   #1
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию Преимущества preg_match()

В чем преимущества
PHP код:
preg_match(); 
перед
PHP код:
str_pos(); //Поиск первого слова
str_pos(); //Поиск второго слова
substr(); //Вытаскивание подстроки между наидеными словами 
когда нужно выдернуть одно слово между двумя другими?
Dexes вне форума Ответить с цитированием
Старый 11.01.2012, 19:06   #2
Serj0987
Пользователь
 
Регистрация: 18.04.2009
Сообщений: 44
По умолчанию

Регулярные выражения это гибкое средство, они выгодны в вашем случае, если между этими двумя словами по мимо искомого слова могут оказаться пробелы или например знаки препинания, в этом случае:
Код:
str_pos(); //Поиск первого слова 
str_pos(); //Поиск второго слова 
substr(); //Вытаскивание подстроки между наидеными словами
вернет по мимо искомого слова кучу мусора который находится между двумя словами найденными str_pos(), а при грамотном использовании preg_match такого не будет)
Программы на заказ Delphi, Pascal, PHP.
ICQ:636-494-826
E-mail:serj0987@yandex.ru.
Serj0987 вне форума Ответить с цитированием
Старый 11.01.2012, 19:25   #3
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

при грамотном использовании strpos такого тоже не будет, но во-первых, есть риск допустить ошибки при проверке (сравнение производится оператором "==="), во-вторых перед substr надо еще рассчитывать смещение символов, в-третьих, надо проверять что второй strpos больше первого, иначе менять их местами, в-четвертых, запись preg_match в одну строку выглядит более понятно и изящнее, и сокращается вероятность ошибок.
Mortimoro вне форума Ответить с цитированием
Старый 11.01.2012, 19:49   #4
Serj0987
Пользователь
 
Регистрация: 18.04.2009
Сообщений: 44
По умолчанию

Mortimoro, будет, либо придется прописывать отдельно поиск и удаление лишних символов в результате.
Программы на заказ Delphi, Pascal, PHP.
ICQ:636-494-826
E-mail:serj0987@yandex.ru.
Serj0987 вне форума Ответить с цитированием
Старый 11.01.2012, 20:37   #5
Lesha
Форумчанин
 
Аватар для Lesha
 
Регистрация: 30.01.2009
Сообщений: 418
По умолчанию

Цитата:
когда нужно выдернуть одно слово между двумя другими?
а когда нужно выдернуть многа многа слов и каждое между двумя другими?
Lesha вне форума Ответить с цитированием
Старый 12.01.2012, 17:56   #6
Dexes
Пользователь
 
Регистрация: 27.12.2011
Сообщений: 86
По умолчанию

Цитата:
Сообщение от Lesha Посмотреть сообщение
а когда нужно выдернуть многа многа слов и каждое между двумя другими?
Вот тогда preg_match ))) но в моем случае там только одно неизвестное слово, без всяческого "мусора".
Dexes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
преимущества MulDiv chertovich Общие вопросы Delphi 3 14.09.2011 12:42
преимущества и убытки USB перед PS/2 портом. Человек_Борща Общие вопросы Delphi 4 22.04.2010 23:58
Преимущества компилятора Visual C++ 6 ПурумПумПум Софт 1 15.06.2009 10:09
preg_match(); _SERGEYX_ PHP 6 09.10.2008 09:35