У меня есть длинное регулярное выражение в AS3 / Flex, которое находит одно из пары десятков слов.
Regex выглядит так: word | wordup | wordly | wordster
когда я делаю "wordup wordster!". Match (regex) я получаю неопределенные мачи!
возвращаемый массив соответствий имеет
Матчи:
[0] 'wordup'
[1] не определено
длина массива: 2
Есть ли известная ошибка в совпадениях группировок AS3? Что может заставить некоторые слова появляться в возвращенном массиве совпадений, а другие возвращаться как неопределенные?
Я искал неправильные символы в своем регулярном выражении и несколько раз проверял регулярное выражение.
Если я просто ищу 'wordup', я получаю массив массива совпадений длиной 1 с правильным содержимым. Если я ищу просто 'wordster', то получаю массив массива с совпадениями [0], который снова не определен.
------ обновление -------
После долгих экспериментов ... мое регулярное выражение было слишком длинным для AS3
Мое действительное регулярное выражение использовало группировку и содержало необязательные скобки:
(?: (? (\ Bword \ b))? | (? (\ Bwordup \ b))? | ... и т. Д. Для 51 слова.
упрощается до:
? (: \ Bword \ Ь | \ bwordup \ Ь |
каким-то образом заставил группы совпадений работать нормально, хотя у меня нет скобок, которые обычно необходимы для определения групп ...