Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: php. Первое вхождние подстроки.  (Прочитано 9354 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Chuda
Гость
« : 15-09-2006 08:23 » 

Задача такая:
надо найти в строке $string первое вхождение символа двоеточия ":", но только если оно не стоит рядом со скобкой, как смайлик "Улыбаюсь".
Есть функция strpos, но она просто ищет вхождение подстроки. Всё, что мне приходит в голову, это после нахождения двоеточия проверять, не является ли следующий символ скобкой, и если является, то искать дальше.
Типа такого:
Код:
<?php
function findcolon($string,$offset=null){
$a strpos($string,":",$offset);
if(
substr($string,$a+1,1) == ")")$a =  findcolon($string,$a);
return 
$a;
}
?>

Но мне почему-то кажется, что это  больно ударит по быстродействию. А быстродействие критично.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 15-09-2006 09:55 » 

/({)(?!\))/
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Chuda
Гость
« Ответ #2 : 15-09-2006 10:35 » 

а strpos принимает регулярные выражения? В документации об этом ничего не сказано.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 16-09-2006 12:23 » 

Chuda, конечно нет Улыбаюсь Через preg_match() можно получить не только куски текста, но и позиции в строке.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Chuda
Гость
« Ответ #4 : 19-09-2006 11:37 » 

а не будет ли это работать дольше, чем strpos ? Быстродействие критично.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 19-09-2006 20:38 » 

По моему опыту скажу, что PCRE работает очень быстро. Эта библиотека вылизана годами.

Если хочешь написать медленне - воспользуйся java. :Улыбаюсь
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Chuda
Гость
« Ответ #6 : 23-09-2006 17:19 » 

вот не хочу джаву Жаль
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines