Page 272 - Браун Э. - Изучаем JavaScript. Руководство по созданию современных веб-сайтов - 2017
P. 272
перекрываются. Для людей это не составляет особой проблемы. Но для обработчика
регулярного выражения это очень серьезное препятствие, он не рассматривает то, что
уже было переработано. Таким образом, обработчик не "возвращается" на шаг назад,
чтобы попытаться найти соответствие среди переработанных символов. Поэтому, он
не найдет слово NATURE, поскольку буква N уже была переработана. Все, что он может
найти, - это строка ATURE, которая не относится ни к одному из искомых слов. Одна
ко в конечном счете обработчик найдет слово EEL.
Давайте снова вернемся к примеру и в слове LION заменим О на Х. Что будет теперь?
Когда обработчик регулярного выражения дойдет до буквы L, он снова распознает воз
можное соответствие слову LION, а потому не переработает букву L. Он перейдет к букве I,
также не перерабатывая ее. Затем он доходит до буквы Х и понимает, что соответствия
нет: ему не поставлена задача искать слова, которое начинаются с LIX. Т е перь обработ
чик регулярного выражения возвращается туда, где, как предполагалось, должно было
быть соответствие (к букве L), перерабатывает все буквы вплоть до Х и переходит к об
работке следующей по порядку буквы обычным образом. В данном случае он найдет со
ответствие слову NATURE, поскольку символ N не был переработан как часть слова LION.
Часть этого процесса представлена на рис. 1 7 . 1 .
Х J А N L I О N А Т U R Е J Х Е Е L N Р
+ Возможно соответствие? Нет". перерабатываем х
J А N L I О N А Т U R Е J Х Е Е L N Р
+Возможно соответствие? Нет". перерабатываем J
· A N L I O N A T U R E J X E E L N P
' ' f'
+ Возможно соответствие? Нет". перерабатываем А
N L I О N А Т U R Е J Х Е Е L N Р
+ Возможно соответствие? Нет ... перерабатываем N
L I О N А Т U R Е J Х Е Е L N Р
+ Возможно соответствие? Да! Не перерабатываем L
L I О N А Т U R Е J Х Е Е L N Р
+ Возможно соответствие? Да! Не перерабатываем r
, , L I О N А Т U R Е J Х Е Е L N Р
+ Возможно соответствие? Да! Не перерабатываем о
L I О N А Т U R Е J Х Е Е L N Р
+ Соответспие найдено! Перерабатываем его целиком (все слово LION)
А Т U R Е J Х Е Е L N Р
+ Возможно соответствие? Нет". перерабатываем А
".продолжае.лt, пока не будет переработана ва1 вход11ая строка
Рис. 1 7 . 1 . П р имер обработки регулярного выражения
Переработка входных данных 275

