Функции Язык программирования PHP

similar_text

(PHP 3>= 3.0.7, PHP 4)

similar_text - вычисляет сходство между двумя строками.

Описание

int similar_text (string first, string second [, float percent])

Вычисляет сходство между двумя строками, как описано в Oliver [1993]. Обратите внимание, что эта реализация не использует стэк, как в псевдокоде Oliver'а, а вызывает рекурсивно, что может, или может не, ускорить весь процесс. Заметьте также сложность этого алгоритма O(N**3), где N это длина самой длинной строки.

При передаче ссылки в качестве третьего параметра, similar_text() вычисляет сходство в процентах. Возвращает количество совпавших символов в обеих строках.


Назад Оглавление Вперёд
setlocale Вверх soundex

Обратные Ссылки/BACK REFERENCES

В одном субпатэрне может быть более одной обратной ссылки. Если субпатэрн в данный момент не используется в определённом совпадении, то любые обратные ссылки на него терпят неудачу. Например, патэрн

(a|(bc))\2

всегда терпит неудачу, если начинает совпадать с "a" раньше, чем с "bc". Поскольку может быть до 99 обратных ссылок, все цифры, идущие после backslash, считаются частью числа потенциальной обратной ссылки. Если патэрн продолжается цифровым символом, то обязан использоваться некоторый ограничитель для окончания обратной ссылки. Если опция PCRE_EXTENDED установлена, это может быть пробел. Иначе может использоваться пустой комментарий.
Обратная ссылка, которая появляется внутри скобок, к которым она обращается, терпит неудачу, если сначала используется субпатэрн; так, например, (a\1) никогда не совпадает. Однако такие ссылки могут использоваться внутри повторяющихся субпатэрнов. Например, патэрн

(a|b\1)+

совпадает с любым количеством "a" а с "aba", "ababaa" etc. При каждой итерации субпатэрна обратная ссылка совпадает со строкой символов, соответствующе предыдущей итерации. Чтобы это работало, патэрн должен быть таким, чтобы первая итерация не должна была совпадать с обратной ссылкой. Это можно сделать с помощью чередования, как в предыдущем примере, или квантификатором с минимумом 0.