![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Silent_s |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 2.12.2007 Где: Москва Репутация: нет Всего: 0 |
К примеру мне надо найти слова в тесте где встречаются слова в верхнем регистре с помощью регулярок сделать это не трудно получится примерно так ([A-ZА-Я]+)
А вот как реализовать подобное с помощью обычных функций для работы со строками. --------------------
Мой блог |
|||
|
||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
Можно в цикле проверять каждый символ на регистр
|
|||
|
||||
| Silent_s |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 2.12.2007 Где: Москва Репутация: нет Всего: 0 |
А так быстрее будет при поиске по тексту чем регуляркой?
--------------------
Мой блог |
|||
|
||||
| quarz |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 205 Регистрация: 7.1.2005 Репутация: 1 Всего: 3 |
Обычная штука: регулярками можно сделать что угодно и это будет смотреться красиво и аккуратно. Но работать будет медленно, по сравнению с собственной функцией, реализующей конкретную задачу.
Так что для простых выражений, там где требуется высокая скорость работы эффективнее сделать проход по строке циклом с необходимыми проверками. Для уверенности можно прогнать в цикле 100 раз регулярку, а потом 100 раз свою функцию поиска и сравнить время. |
|||
|
||||
| enof |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
quarz, неужели?
надо сначала с задачей разобраться и примерно оценить, как быстро ваш велосипед будет работать. В данном случае регулярки предпочтительнее по скорости. Или для вас это:
написать удобнее этого:
? Это сообщение отредактировал(а) enof - 7.3.2009, 18:47 |
||||||||
|
|||||||||
| Silent_s |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 2.12.2007 Где: Москва Репутация: нет Всего: 0 |
о круто, биг сенкс enof
--------------------
Мой блог |
|||
|
||||
| Silent_s |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 2.12.2007 Где: Москва Репутация: нет Всего: 0 |
а вот такой вопрос еще в связи с тем, что preg_replace пользовался один раз всего и то давно, подскажите как в массиве заменять полностью слово которое нашли а не только его вхождение к примеру ищем ну так же буквы с верхним регистром и удаляем их, вот если писать так
и если ищем по массиву с такими данными
то он выдаст такое - "Привет ивет" А надо чтобы ивет не выводил.. --------------------
Мой блог |
||||
|
|||||
| enof |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 837 Регистрация: 23.1.2009 Где: Санкт-Петербург Репутация: 30 Всего: 35 |
|
|||
|
||||
| Silent_s |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 2.12.2007 Где: Москва Репутация: нет Всего: 0 |
enof, спасибо! А я думал несколько в ином направлении считал, что можно вставить что то во второй параметр preg_replace или поставить какой нить хитрый модификатор
--------------------
Мой блог |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
регулярное выражение компилируется в конечный автомат. который работает на скорости, сравнимой со скоростью "велосипедов". и самое большое время занимает как раз компиляция, а не выполнение. потому если необходимо одного и тоже регвыр использовать на разные данные, стоит попробовать модификатор S |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |