Регулярные выражения

Никола

Новичок
Регулярные выражения

код программы:
PHP:
<?
$string = "ftp://127.0.0.1/text";
preg_match("/^(?:ftp:\/\/)(\d+\.\d+\.\d+\.\d+)\/*$/", $string, $mathces);
print $mathces[0];
?>
Не могу понять, почему не работает? Мож кто сможет подсказать?
 

wizard

Новичок
PHP:
<? 
$string = "ftp://127.0.0.1/text"; 
preg_match("/^(?:ftp:\/\/)(\d+\.\d+\.\d+\.\d+)\/.*$/", $string, $mathces); 
print $mathces[0]; 
?>
По твоему, получается что в конце строки должно быть 0 или более "/"
 

Wicked

Новичок
1) меня всегда интересовало, зачем пишут .*$
2) почему бы не использовать [m]parse_url[/m] вместо регулярных выражений?
 

Никола

Новичок
wizard
БОЛЬШОЕ СПАСИБО!! А то уже голову сломал, почему не работает.
И можно 1 попутный вопрос:
В каких случаях нужна эта "точка". Я прочитал статью про "Регулярные выражения" и понял всё, кроме того, где и при каких условиях нужно ставить "точку"?
 

wizard

Новичок
Никола
Лучше послушай Wicked, он дело говорит, а точка означает любой символ.
 

Никола

Новичок
Wicked
Регулярным выражением я хочу проверить правильность ссылки (чтобы там было: "ftp://127.0.0.1/text", а не "рошагшоыраоыншгармо")

-~{}~ 13.09.06 21:22:

wizard
Т.е. "точка" означает "любой символ", а "*" говорит, что их будет хоть сколько. Правильно я понял Вас?
 

Фанат

oncle terrible
Команда форума
наличие необходимых полей в массиве получаемом из parse_url, автоматически означает правильность ссылки.
но чтобы это понять, нужно логическое мышление.
а с этим делом у большинства посетителей данного форума большие напряги.
 

Franzusow

Новичок
klaviatury net :)
imel v vidu ne bolee 3 chisel v ip-adrese
PHP:
<?php
error_reporting(E_ALL);

$TXT = <<<EOF
[url]ftp://127.0.0.1/text[/url]
EOF;

$pattern = '/(?:ftp:\/\/)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\/.*$/';
preg_match_all($pattern, $TXT, $array);

echo '<pre>', print_r($array, true), '</pre>';

?>
smotrite: http://www.regex-tester.de/index.php?langu=en
 

Wicked

Новичок
Franzusow
1) Т.е. ты думаешь, что этого условия достаточно для валидности IP-адреса?
2) причем тут html-код?
 
Сверху