Эта тема на forum.dklab.ru


PyJIeT: preg_match...
Написал ф-ию, ака small_mo_rewrite =], но вот есть некоторое недоразумение.Код:
function makeparams($file)
{ $parts = explode("-", $file);
$size = sizeof($parts);
$params = array();
for($i = 0; $i < $size; $i ++){
if(preg_match("/([a-zA-Z_]+)([0-9]+)/", $parts[$i], $M)) $params[$M[1]] = $M[2]; }
$params["script_name"] = preg_replace("/(?:-[a-zA-Z_0-9]*)*/", "", $file);
return $params;
}

print_r(makeparams("index-id30-70pi-lolL9.html"));
Работает верно - после работы этой ф-ии выведется array("id" => 30, "script_name" => "index.html");
Но только стоит заменить и [0-9] на эквивалентные им \w и \d - начинается полная чушь.почему?
Ant:
\w
Это буквенно-цифровой символ или «_». Учитывайте это.
PyJIeT:
А вы не посоветуете, где-бы раздобыть "правильный" online man по PCRE, а то я скачал недавно - там написано, что \w = , \d = [0-9], да и покупать книгу о перл только для man по PCRE как-то нехочется...
BikerSoul:
PyJIeT:
о pcre достаточно обширно написано в мане по php
WingedFox:
PyJIeT:
Купите книгу Фридла по регам.
Ant:
Вот хороший справочник с примерами. Хотя не правильно его называть только справочником — это так же неплохое пособие. На русском. Рекомендую: http://pvdlab.net/regexp2-ref.zip .

Эта тема на forum.dklab.ru