[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обработка регулярки
xUnicornx
Здрасте всем. Есть код:

<?php
$social = "facebook.com";
$str = "facebook.com: | bestniagaracom : iCs8EbZG | |";
$regexp = "#$social\s*:?\s*|\s*([-_a-zA-Z0-9]*(@([a-z]*\.?)+)?)\s*:\s*([a-zA-Z0-9]*)(\s*|)+#";
preg_match($regexp, $str, $matches);
echo "<pre>";print_r($matches);echo "</pre>";
?>


и на выходе он мне выдает


Array
(
[0] => facebook.com:
)



В чем может быть проблема? Откуда он берет этот нулевой элемент?



Спустя 13 минут, 6 секунд (17.07.2012 - 14:43) vagrand написал(а):
Что значит откуда? Из регулярки вестимо. Вопрос в другом, а каков должен быть результат?

Спустя 6 минут, 22 секунды (17.07.2012 - 14:49) nikolasline написал(а):
Все верно, так работает функция. Результат всегда будет в:
$matches['0']

Спустя 20 минут, 20 секунд (17.07.2012 - 15:09) xUnicornx написал(а):
ну я то понимаю что из регулярки. По ТЗ результат должен быть таков:
$matches[0] = "bestniagaracom iCs8EbZG";
$matches[1] = "bestniagaracom";
$matches[2] = "iCs8EbZG";

Я не пойму почему facebook.com попал в результат, ведь я его не выделял скобками.


Спустя 1 час, 57 минут, 23 секунды (17.07.2012 - 17:07) xUnicornx написал(а):
все, разобрался. Всем спс

Спустя 5 дней, 17 часов, 32 минуты, 21 секунда (23.07.2012 - 10:39) xUnicornx написал(а):
Все же не разобрался. Давайте еще раз. У меня есь скрипт.

$social = "yahoo.com";
$str = "yahoo.com: | bestniagaracom@yahoo.com: 12345 | answ1: Erikson | answ2: Mackay";

//$regexp = "#$social\s*:?\s*\|\s*([-_a-zA-Z0-9]*(?:@(?:[a-z]*\.?)+)?)\s*:\s*([a-zA-Z0-9]*)(?:\s*\|\s*([a-zA-Z0-9]*)\s*:\s*([a-zA-Z0-9]*)){2}#";
$regexp = "#$social\s*:?(?:\s*\|\s*([-_a-zA-Z0-9]*(?:@(?:[a-z]*\.?)+)?)\s*:\s*([a-zA-Z0-9]*))+#";


preg_match($regexp, $str, $matches);
echo "<pre>";print_r($matches);echo "</pre>";



И мне нужно, что б на выходе он выдавал:
Цитата

Array
(
    [0] => yahoo.com:    | bestniagaracom@yahoo.com: 12345 | answ1: Erikson  | answ2: Mackay
    [1] => bestniagaracom@yahoo.com
    [2] => 12345
    [3] => answ1
    [4] => Erikson 
    [5] => answ2
    [6] => Mackay
)


А он мне выдает:
Цитата

Array
(
    [0] => yahoo.com:    | bestniagaracom@yahoo.com: 12345 | answ1: Erikson  | answ2: Mackay
    [1] => answ2
    [2] => Mackay
)


Как такое сделать?
Быстрый ответ:

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