swfbutton_keypress(PHP 4 >= 4.0.5) swfbutton_keypress - возвращает флаг акции для keyPress(char). Описаниеint swfbutton_keypress (string str)
|
||||||||||
|
||||||||||
Он может совпасть с "aaaa" 33 разными способами, и это количество увеличивается
очень быстро по мере увеличения длины строки. (Повторение * может совпасть 0,
1, 2, 3 или 4 раза, и для каждого случая/case, отличного от 0, повторения +
могут совпадать разное количество раз.)
Если остаток патэрна таков, что всё совпадение терпит неудачу, PCRE должно,
в принципе, попытаться выполнить все возможные варианты, и это может потребовать
огромного количества времени.
С помощью оптимизации можно отловить наиболее простые случаи, такие как
(a+)*bгде следом идёт литеральный символ. Прежде чем полагаться на стандартную процедуру поиска совпадений, PCRE проверяет, имеется ли "b" далее в строке-субъекте, и если нет, совпадение немедленно завершается неудачей. Однако, когда последующего литерала нет, эта оптимизация не может быть использована. Почувствуйте разницу, сравнив поведение
(a+)*\dс поведением вышеприведённого патэрна. Первый выдаёт неудачу почти сразу, когда применяется к строке символов "a", а второй затрачивает значительное время на поиск в строках длиной более 20 символов.
| |