Реализовать поддержку именованных подмасок в соответствии с PCRE
Originally reported on Google Code with ID 83 ``` Смотрим секцию NAMED SUBPATTERNS http://www.pcre.org/pcre.txt
Имена подмасок можно использовать как ключи наравне с числами, т.к. типизация в PHP динамическая. ```
Reported by `oasychev` on 2011-12-30 16:13:56
Comments (9)
-
reporter -
``` Я предлагаю вместо $subpatternkeys сделать $subpatternmap, где хранить соответствие имя-номер, и работать только с номерами подмасок. Ну и добавить поле $lexemcount в хэндлер и лексер. ```
Reported by `vostreltsov` on 2012-01-20 06:32:51
-
reporter ``` Согласен.
Есть мнение, что эти поля надо продублировать в matching_results вместе с $str - будут полезны для возврата результатов... ```
Reported by `oasychev` on 2012-01-20 14:07:50
-
Reported by `vostreltsov` on 2012-01-21 09:04:19 - Status changed: `Fixed`
-
reporter ``` Проблему, о которой писали мне в чате, решили? ```
Reported by `oasychev` on 2012-01-21 16:50:23
-
``` Да, решил символы в именах алфивито-циферные, скобки в них не входят... ```
Reported by `vostreltsov` on 2012-01-21 17:01:37
-
reporter ``` Поддержка перенесена на уровень подставки подмасок в обратную связь. Доработаны функции qtype_preg_matching_results для учета именованных подмасок. ```
Reported by `oasychev` on 2012-01-25 07:43:01 - Status changed: `Done`
-
``` У меня вызывает опасение проверка if (is_string($subpattern)) в функциях, связанных с именованными подмасками. Обычные номера хранятся тоже как строки, например, '12' - лексер не переводит их в числа.
Для решения проблемы я делал в именованных подмасках префикс 'name_'. Поэтому я бы поменял на проверку на strpos(). Или же лексер править на перевод в числа... ```
Reported by `vostreltsov` on 2012-01-25 08:02:14
-
reporter ``` Заменил на array_key_exists($subpattern, $this->subpatternmap)
Советую решить проблему подобным образом и в других местах... Префикс - пакость ;) ```
Reported by `oasychev` on 2012-01-25 17:09:50
- Log in to comment
Reported by `oasychev` on 2011-12-31 16:55:59 - Labels added: Milestone-Release2.2, Component-Preg