
02.09.2008, 17:01
|
|
Участник форума
Регистрация: 23.06.2007
Сообщений: 188
Провел на форуме: 1051973
Репутация:
116
|
|
PHP код:
$str = "matc1 matc2 matc3 matcd";
$search_str = "match";
$matches = array();
for($i=0; $i<strlen($search_str); $i++) {
$temp_str = $search_str;
$temp_str[$i] = ".";
$search_regexp = "#".$temp_str."#i";
preg_match_all($search_regexp, $str, $m);
$matches = array_merge($matches, $m[0]);
}
print_r($matches);
находит слово с одной неверной буквой
аналогично для поиска асек:
PHP код:
$str = "21232 11231 11111";
$search_str = "21231";
$matches = array();
for($i=0; $i<strlen($search_str); $i++) {
$temp_str = $search_str;
$num = $temp_str[$i]; $b_num = $num-1; $e_num = $num+1;
$temp_str = substr($temp_str, 0, $i)."[".$b_num."-".$e_num."]".substr($temp_str, $i+1);
$search_regexp = "#".$temp_str."#i";
preg_match_all($search_regexp, $str, $m);
$matches = array_merge($matches, $m[0]);
}
print_r($matches);
еще для домофона:
PHP код:
$str = "дом фон домофон гггг";
$search_str = "домофон";
$m2 = array();
for($i=0; $i<strlen($search_str)-2; $i++) {
$temp_str = substr($search_str, $i, 3);
$search_regexp = "#[^ ]*".$temp_str."[^ *]*#i";
echo $search_regexp."<br>";
preg_match_all($search_regexp, $str, $m);
$m2 = array_merge($matches, $m[0]);
}
$matches = array_unique($m2); //избавляемся от повторов
print_r($matches);
Последний раз редактировалось D Mak; 02.09.2008 в 20:13..
|
|
|