Программирование > Регулярные выражения
[Опечатки] Книга Фридла "Регулярные выражения. Библиотека пргограммиста" издание 2
tserbis:
Да я к тому, что ссылку-то, наверное, можно и на него положить.
Yukko:
--- Цитировать ---tserbis:
Есть 2-е издание за 2003-й год.
--- Конец цитаты ---
Во втором издании, когдя я читал, была найдена ошибка.
стр 195:
--- Цитировать ---Фридл
теперь рассмотрим применение выражения ^\\w+: к строке "Subject:". С первого взгляда можно сказать, что поиск завершится неудачей, потому что в тексте нет ни одного двоеточия, но механизм регулярных выражений придет к этому выводу лишь после полной проверки.
--- Конец цитаты ---
на самом деле совпадение будет, можете проверить сами... потому что в проверяемой строке есть двоеточие. Дальше в следующем абзаце в книге рассказывается механизм поиска совпадения и почему данное РВ завершится неудачей. Когда стало заметно, что совпадение будет найдено, надо либо убрать из строки "Subject:" двоеточие, либо переписать следующий абзац, объяснив почему будет найдено совпадение. (Дж. Фридл по всей книге рассматривает обработку файла сообщения электронной почты, а там строка "Subject:" содержит двоеточие). Переписываем абзац:
РВ ^\\w+: ищет одно или более слов в начале строки, после которых следует двоеточие (на самом деле в любом случае, если слово и будет найдено, то будет найдено только одно слово, но не более, потому что есть другие разделители слов, кроме двоеточия). К моменту первой проверки : часть выражения \\w+ распространится до конца слова Subject так как дальше идет символ, который не входи в класс \\w, механизм РВ делает сохранение состояния в конце слова Subject и проверяет следующий символ в строке на совпадение с тем, что указано в РВ, так как следующий символ двоеточие, то предыдущее сохраненное состояние забывается и сохраняется новое состояние, но механизм РВ пришел к концу РВ, то он берет первое (согласно закона) , а вообще единственное совпадение "Subject:"
[off]замечания исправления приветствуются[/off]
tserbis:
Перевод 2-го издания, страница 38.
Вчера обнаружил, что перед абзацем, начинающимся со слов "Переходим ко второй половине...", пропущен серьёзный кусок текста.
Сейчас сравнил с переводом первого издания - почти страницы текста нет, ИМХО.
Маловероятно, что у других по-другому, но всё-таки гляньте.
Yukko:
tserbis
Сравнивать не с чем, но согласен :) текст пропущен.
tserbis:
Ещё несколько опечаток:
1. страница 4
аннотация; последний абзац; в слове Python пропущена буква h (см. также опечатки 3 и 38)
2. страница 7
между 3 строкой ("В двух словах") и 4 строкой ("Другие квантификаторы: повторение" должен быть пункт "Необязательные элементы" (см. опечатку 7)
3. страница 16
раздел "Почему было написано..."; 4 сверху строка раздела; в слове Python пропущена буква h (см. также опечатки 1 и 38)
4. страница 16
4 снизу строка страницы; вместо "скрупулезного" надо "скурпулезного"
5. страница 26
3 снизу строка страницы; символ | должен быть подчёркнут
6. страница 30
раздел "Начало и..."; 6 сверху строка раздела; не закрыто регулярное выражение
7 [уже упоминалась в этом треде]. страница 38
перед предпоследним абзацем страницы (начинающимся со слов "Переходим ко второй...") пропущен кусок текста (пропущенный текст приведён дальше в этом треде); судя по первому изданию - почти страница; так как в пропущенном тексте есть начало раздела "Необязательные элементы", то см. также. опечатку 2.
8. страница 39
предпоследний абзац страницы; после слова "Вставляя" в рег. выражении троеточие заменить на символ "видимого пробела"
9. страница 39
предпоследний абзац страницы; после слов "мы получаем" в рег. выражении после символа * вставить символ >
10. страница 46
3 снизу абзац страницы; после слов "простым выражением вида" в рег. выражении после символа . вставить символ :
11. страница 47
предпоследний абзац страницы; символ ? заменить на символ "видимого пробела"
12. страница 49
раздел "Подвыражение"; в начале последней строчки 2 абзаца рег. выражение 1-6 заменить на [1-6]
13. страница 64
6 сверху строка страницы; после слова "от" в рег. выражении квадратные скобки [] заменить на круглые () (см. также опечатку 15)
14. страница 64
врезка; 2 абзац; после слов "круглых скобок" в рег. выражении после символа ? вставить символ :
15. страница 65
врезка; название; во 2 рег. выражении квадратные скобки [] заменить на круглые () (см. также опечатку 13)
16. страница 65
врезка; последний абзац; в 1 рег. выражении после символа * убрать символ ]
17. страница 80
2 снизу абзац страницы; символ : заменить на символ =
18. страница 83
последнее предложение перед разделом "Возвращаемся к..."; на следующей странице НЕТ врезки с соответствующим ответом
19. страница 84
последний перед разделом "Границы слов и..." абзац; рег. выражение в 3 строке; жирным должен быть выделен не последний символ ), а предпоследний
20. страница 86
4 сверху строка страницы; слово "цифр" заменить на "цифры"
21. страница 91
1 сверху строка страницы; слово "запятыми" заменить на "точками"
22. страница 91
4 снизу строка страницы; первые 3 буквы (com) строки должны быть подчёркнуты
23. страница 93
раздел "Преобразование..."; 3 строка раздела; com/ заменить на com
24. страница 93
раздел "Преобразование..."; 4 строка раздела; "причем путь" заменить на "причем /путь"
25. страница 94
абзац, начинающийся "Текущая версия..."; рег. выражение после слов "то есть"; после символа < добавить символ !
26. страница 95
9 сверху строка страницы (содержащая слова "Не может заканчиваться"); символ > заменить на символ
Навигация
Перейти к полной версии