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

soundex

(PHP 3, PHP 4)

soundex - вычисляет ключ soundex строки.

Описание

string soundex (string str)

Вычисляет ключ soundex строки str.

Soundex-ключи имеют то свойство, что слова, произнесённые одинаково, дают тот же самый soundex-ключ и могут, таким образом, быть использованы для упрощения поиска в БД, где вы знаете произношение но не написание. Эта soundex-функция возвращает строку длиной в 4 символа, начиная с буквы.

Эту функцию soundex описал Donald Knuth в книге "The Art Of Computer Programming, vol. 3: Sorting And Searching", Addison-Wesley (1973), стр. 391-392.

Пример 1. Soundex-примеры
soundex("Euler") 
== soundex("Ellery") == 'E460'; soundex("Gauss") == soundex("Ghosh") == 'G200'; 
soundex("Hilbert") == soundex("Heilbronn") == 'H416'; soundex("Knuth") == soundex("Kant") 
== 'K530'; soundex("Lloyd") == soundex("Ladd") == 'L300'; soundex("Lukasiewicz") 
== soundex("Lissajous") == 'L222';

См. также levenshtein(), metaphone() и similar_text().


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

Once-only/"Однократные" субпатэрны

Однократные субпатэрны не являются захватывающими субпатэрнами. Простые случаи, вроде вышеприведённого примера, можно представить как максималистское построение, которое поглощает всё, что может. Так, в то время как \d+ и \d+? подготовлены так, чтобы уточнять число цифр для совпадения с ними, чтобы совпала остальная часть патэрна, (?>\d+) может совпадать только с полной последовательностью цифр.

Эта конструкция, разумеется, может содержать произвольно усложнённые субпатэрны и может вкладываться.

Однократные субпатэрны можно использовать в сочетании с утверждениями назад для специфицирования эффективного совпадения в конце строки-субъекта. Рассмотрим такой простой патэрн:

abcd$

применённый к длинной строке, с которой он не совпадает. Поскольку совпадение выполняется слева направо, PCRE будет искать каждую "a" в субъекте, а затем посмотрит, что из последующего совпадает с остатком патэрна. Если патэрн специфицирован так:

^.*abcd$