Вопрос по ф-ии ereg().

Camillo

Новичок
Вопрос по ф-ии ereg().

Привет.

Моё регулярное выражение можно упрощенно представить в виде:

...... ((....)(....)(....)) .....

Меня интересует следующий вопрос:
Массив, который возвращает ф-ия ereg() в нулевом элементе содержит рассматриваемую подстроку, в первом элементе содержит то, что удовлетворяет условиям, заключенным во "внешней" скобке, во втором то что удовлетворяет условиям заключенным в "первых скобках", заключенных во "внешней" скобке и т.д.
Каким образом заставить ereg() выдавать только нулевой и первый элемент массива?

Плиз не предлагайте обрезать массив...

Меня именно инетерсует вопрос, каким образом можно заставить понять ereg() что скобки "предназначены не для него", но в то же время являются неотъемлемой частью регулярноего выражения.

Например:
PHP:
<?

$string="<a href=\"http://www.my-domain.com\">";

eregi("^\<a href=\"(([url]http://[/url]|[url]http://www\\.[/url])[a-zA-Z0-9_-]{1,}(\\.com|\\.net|\\.org))\"\>", $string, $arr);

print_r($arr);

?>
Результат:
Array
(
[0] => <a href="http://www.my-domain.com">
[1] => http://www.my-domain.com
[2] => http://www.
[3] => .com
)

Спасибо.
 

Camillo

Новичок
Супер, спасибо SiMM!

-~{}~ 07.03.06 10:56:

хм... странно

так не работает:
<?
$string="<a href=\"http://www.my-domain.com\">";
eregi("^\<a href=\"((?:http://|http://www\\.)[a-zA-Z0-9_-]{1,}(?:\\.com|\\.net|\\.org))\"\>", $string, $arr);
print_r($arr);
?>

Выдаёт:
Warning: eregi(): REG_BADRPT in x:\home\localhost\www\regexp\test.php on line 3

А без указания захватываемых подмасок работает:
<?
$string="<a href=\"http://www.my-domain.com\">";
eregi("^\<a href=\"((http://|http://www\\.)[a-zA-Z0-9_-]{1,}(\\.com|\\.net|\\.org))\"\>", $string, $arr);
print_r($arr);
?>
 
Сверху