Возможно ли регулярным выр. определить степень отличия строки...

docker

Новичок
Возможно ли регулярным выр. определить степень отличия строки...

Задача такая. Есть некий url - url1, а также список большой список других url-ов.
Нужно для каждого урла из списка определить степерь близости к url1.
Степень близости должна определяться по количеству отличных символов текущего урла с символами url1.

Циклом делать нельзя, т.к. список урлов очень большой, а если внутри него еще делать посимвольный цикл сравнения символов 2-х урлов, то все просто встанет.

Вообще возможно это реализовать через регулярные выражения?
Т.е. найти количество отличных символов в 2-х строках?
 

uchenik

Новичок
Какой смысл в "степени близости"?
Лучше обьясни задачу, которую тебе нужно решить.
 

Panchous

Павел
Вообще возможно это реализовать через регулярные выражения?
реги созданы для поиска в тексте, а тебе надо сравнивать разные строки - отсюда ответ: НЕТ

Простейший вариант - своя функция сравнения (с циклом).
 

docker

Новичок
Какой смысл в "степени близости"?
Лучше обьясни задачу, которую тебе нужно решить.
Если нет совпадения текущего урла url1 с каким-нибудь из большого списка, то выбирать тот из списка, который наиболее близок к url1.

Т.е. если например url1 = /page.phtml?param1=1&param2=2
А в списке такого нет, то есть например такой:
/page.phtml?param1=4&param2=5
То должен выбираться он.
 

uchenik

Новичок
Функция, которая вычисляет степень "похожести" двух строк:

http://ua.php.net/manual/ru/function.similar-text.php

но я сомневаюсь, что это удачное решение
 

docker

Новичок
Автор оригинала: Panchous
[m]parse_url[/m]
Не прокатит. Отличия url-ов мне надо смотреть в основном в параметрах. А в parse_url - они одной строкой записаны.
Поэтому тут задача не решается, а переключается на сравнение query, возвращаемого фукнцией parse_url

-~{}~ 08.04.05 15:52:

Автор оригинала: uchenik
Функция, которая вычисляет степень "похожести" двух строк:

http://ua.php.net/manual/ru/function.similar-text.php

но я сомневаюсь, что это удачное решение
Тестирую сейчас эту функцию для своей задачи...

Сомневаешься, что хорошее - предложи пожалуйста свое какое-нибудь если не трудно!
 

docker

Новичок
Вроде бы нашел решение, это фукнция
levenshtein
Либо подобные: metaphone, soundex....
 
Сверху