<?php
function valid_ip($ip) {
return preg_match("/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])" .
"(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$/", $ip);
}
?>
<?php
preg_match("/(?P<foo>abc)(.*)(?P<bar>xyz)/",
'abcdefghijklmnopqrstuvwxyz',
$matches);
print_r($matches);
?>
------------------------------
Array
(
[0] => abcdefghijklmnopqrstuvwxyz
[foo] => abc
[1] => abc
[2] => defghijklmnopqrstuvw
[bar] => xyz
[3] => xyz
)
<?php
$pattern = '/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])' .
'(([a-z0-9-])*([a-z0-9]))+' .
'(\.([a-z0-9])([-a-z0-9_-])?([a-z0-9])+)+$/i';
echo preg_match ($pattern, "email-address-to-validate@host.tld");
?>
Группировать в регулярном выражении можно вложенно
<?php
$regexp = '@^/(tn(-crop)?)/(\d+)x(\d+)/(.+(jpg|png|gif))$@i';
foreach(array('/tn-crop/100x100/foo.jpg', '/tn/100x100/foo.jpg') as $v){
echo $v.' - '.(preg_match($regexp, $v, $m) ? 'true' : 'false')."\n";
print_r($m);
}
/tn-crop/100x100/foo.jpg - true
Array
(
[0] => /tn-crop/100x100/foo.jpg
[1] => tn-crop
[2] => -crop
[3] => 100
[4] => 100
[5] => foo.jpg
[6] => jpg
)
/tn/100x100/foo.jpg - true
Array
(
[0] => /tn/100x100/foo.jpg
[1] => tn
[2] =>
[3] => 100
[4] => 100
[5] => foo.jpg
[6] => jpg
)
Источники:
- 1-3 - php.net