Re[4]: java.lang.StackOverflowError на Regexp
От: PAS_Tor Германия http://passtor.blogspot.com/
Дата: 17.05.13 10:30
Оценка: 3 (1)
Здравствуйте, hl-man, Вы писали:

PAS>>Possessive quantifiers сделает тоже самое и быстрее.

HM>Гм... Возможно. По правде говоря я не очено то в них "въехал", потому и задействовал атомарные группы Надо изучить вопрос.

Расчёт на то, что если ты встретил незакодированный символ, то с очень большой вероятностью следующий символ тоже будет не закодирован. То же самое с "процентными" группами. Так что имеет смысл выбирать сначала повторения, без необходимости обращаться к |.

Есть три нотации повторений:

Жадные – .+ – сначала отбирают всё что могут, потом, если нужно, потихоньку отдают символы строке назад (бектрекинг)
 

Ленивые – .+? – стараются как можно быстрее перескочить на последующую часть RegExp


Притяжательные (Possessive quantifiers) – .++ – работает как жадный алгоритм, но не сохраняет инфо для бектрекинга.
Follow my blog @ http://passtor.blogspot.com/
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.