Многократные совпадения через ereg

  • Автор темы Автор темы ageres
  • Дата начала Дата начала

ageres

Guest
Многократные совпадения через ereg

Столкнулся с такой проблемой:

есть строчка:
$line = "1069718239| Какой-то текст |1069718238";

Из этого текста нужно вытащить номера.

Задаю маску: 10[0-9]{8}

Использую команду: ereg("10[0-9]{8}", $line, $ereg);

В итоге получаю, только одно совпадение для $ereg['0'].

Вопрос такой, как сделать так, чтобы находились два номера? Имхо маска правильная, возможно не учёл расстояния между этими номерами. Если так, то как правильно их задать?
 
Инересует использование Regexp, но не тех, что используются в Perl.
 
Появились ещё вопросы.
Есть строка:
"12.0.0.1|в русскую гильдию. Cсылка на форум|| Re: Planetside Overview|skif"

Нужно извлечь: в русскую гильдию. Cсылка на форум.

Ставлю маску: \.[0-9]{1,3}\|.+\|\|

Где \.[0-9]{1,3} - ip адрес. (.+) - любая последовательно символов до ||

Проблема в том, что на || текст не обрезается, и копируется вся поселодательност. При этом, если убрать квадратные скобки, то всё ок.

Вопросы такой: (.+) - не ловит квадратные скобки?
 
$v = "12.0.0.1|в русскую гильдию. Cсылка на форум|| Re: Planetside Overview|skif";
preg_match("~\|(.+?)\|~",$v,$m);
print_r($m);
 
Сверху