Задача:
Есть строка ,например, "Hello woooord!" или "Hello wwword!"
Нужно узнать есть ли в заданной строке повторение символа 3 раза или нет, символ который повторяется неизвестен
Может кто подскажет куда копать?
Спустя 6 минут, 28 секунд (9.07.2010 - 13:29) DedMorozzz написал(а):
От очень похожая задача была. http://phpforum.ru/index.php?showtopic=30166&st=15
Спустя 29 минут, 9 секунд (9.07.2010 - 13:58) Antoxych написал(а):
Если вы про это
Думаю можно так попробывать только уж очень огромный регесп получается, так не хочется делать)
$b='';
for($i=ord('a');$i<=ord('z');$i++){
$b .='('.chr($i).'(?!'.chr($i).'))?';
}
$a="yandex.com";
preg_match_all("#^($b)+\.[a-z]{2,6}(\.[a-z]{2,6})?$#",$a,$matches);
echo $matches[0][0];
Думаю можно так попробывать только уж очень огромный регесп получается, так не хочется делать)
Спустя 3 минуты, 34 секунды (9.07.2010 - 14:02) DedMorozzz написал(а):
Верно, про сие. Только надо добавить будет 3 символа. А чем он огромный?
Спустя 2 минуты, 10 секунд (9.07.2010 - 14:04) Antoxych написал(а):
переменная b получается не маленькой, хотелось бы по локаничней
Спустя 1 минута, 51 секунда (9.07.2010 - 14:06) DedMorozzz написал(а):
В любом случае, в рамках данной задачи прийдётся делать посимвольный анализ. Ну в общем дерзай делать иначе Как сделаешь покажешь
Спустя 30 секунд (9.07.2010 - 14:07) Ineed$ написал(а):
можно проще
$a = "wooorld";
echo preg_match_all('#(.)\1\1#', $a, $matches);
Спустя 11 минут, 36 секунд (9.07.2010 - 14:18) Antoxych написал(а):
Цитата (Ineed$ @ 9.07.2010 - 11:07) |
можно прощеpreg_match_all("#([\w])\1\1#",$a,$matches); |
что то не выходит так
Спустя 7 минут, 3 секунды (9.07.2010 - 14:25) Ineed$ написал(а):
ошибся маленько. попробуй, переделал
Спустя 9 минут, 34 секунды (9.07.2010 - 14:35) Antoxych написал(а):
Да так работает, Спасибо
Спустя 1 минута, 4 секунды (9.07.2010 - 14:36) Ineed$ написал(а):
вообще для таких вещей(если неизвесно сколько повторений) лучше использовать лямбды нововведённые в пхп 5.3