03_Поиск_и_замена

=Текстовый редактор NotePad++=

Практикум
Конвертирование файлов. Поиск и замена. Регулярные выражения (базовые).

//NB: Владельцы Mac-ов используют аналоги: редакторы TextWrangler или Fraise// 1. Файл для работы - Откройте файл с помощью NotePad++ (в проводнике контекстное меню Открыть с помощью...)

2. Что нужно сделать: //NB: Задание для тех, кто все уже умеет: выполнить все перечисленные операции + разметить начало и конец прямой речи с помощью тега + составить список слов, не содержащих ударения и буквы ё (используя возможности текстового редактора).//
 * убрать ударения
 * заменить прописные буквы строчными в заголовке
 * заменить пробелы в начале абзацев на табуляцию
 * убрать "жесткие" концы строк, оставив деление на абзацы
 * при этом аккуратно обработать слова с переносами
 * убрать "лишние" пробелы (два и больше)

3. Уберите все знаки ударения Выделите символ ударения, меню Поиск → Замена, Найти: ˊ Заменить: (оставьте пустым) Режим поиска: обычный Заменить всё Преобразуйте заголовок, заменив прописные буквы строчными
 * Правка → Преобразовать выделение → строчные**

4. **Кодировки** Типы кодировок текста для русского языка: DOS, KOI8-R, Cyrillic Windows cp1251, Unicode (UTF-8 с/без BOM, цифровой подписи) В меню "**Кодировки**" замените текущую на Windows-1251 (оцените эффект:), затем обратно на UTF-8 без BOM. Если вы открываете файл и видите "кракозябры", то с помощью меню "Кодировки" можно подобрать правильную. "Преобразовать в...": переводит файл в другую кодировку (затем файл нужно сохранить). Windows-1251 называется ANSI. 5. **Вид** → **Отображение символов** Отметьте чекбоксы: Отображать пробелы и табуляции, отображать символы конца строки (отображать все символы). 6. **Формат конца строки** Непечатаемые символы, обозначающие конец строки: Win-формат: CR+LF \r\n old-Mac-формат: CR \r UNIX-формат: LF \n Справа показаны эскейп-символы (\r, \n), которые используются при поиске и замене **в расширенном режиме** и в режиме регулярных выражений. 7. **Вид** → **Перенос строк** автоматически переносит текст на новую строку, как в Word. Видимые концы строк при этом не сохраняются (являются "мягкими").

8. **Поиск и замена в расширенном режиме** Табуляция: экскейп-символ \t Замените 5 пробелов в начале строки на знак табуляции. Найти: ˽˽˽˽˽ (5 пробелов) Заменить: \t Режим поиска: расширенный

Замените концы строк на пробел

Найти: \r\n Заменить: ˽ (1 пробел) Режим поиска: расширенный

Верните концы строк в конце абзацев

(догадайтесь, как. Подсказка: абзацы начинаются с табуляции. \t нужно заменить на нее же, но перед ней вставить......)

9. Режим поиска **Регулярные выражения**

^ - начало строки $ - конец строки к[аоиу]т - найдет //кат, кот, кит, кут// [а-яё] - найдет все буквы русского алфавита [0-9a-z@_.] - все знаки, допустимые в адресе эл. почты Узнайте, есть ли в тексте латинские буквы?

[^а-я] - "крышка" обозначает НЕ [^!]$- найдет концы абзацев, не заканчивающиеся на восклицательный знак

. - любой символ .+ - повтор (любого символа) 1 или более раз .* - повтор (любого символа) 0 или более раз

е+ - найдет //е, ее, еее...// [нм]+ - найдет сочетания //нн, мм, нм, мн, ммм, нннн, мнннннм...// л.+ - найдет букву //л// и далее все символы до конца строки л[а-яё]+ - что найдется здесь? ˽я[а-яё]* - (в начале пробел) найдет слова, начинающиеся с //я//, в том числе слово //я// Этот поиск "**жадный**" - он будет искать строку максимальной длины, соответствующую условию в "Искать". Запрос <.*> в строке что-то здесь найдет всю строку целиком: что-то здесь Нежадный ("**ленивый**") поиск: .+? .*?  ищет до первого вхождения символа, указанного после ? <.*?> - найдет тег, затем тег : что-то здесь ч.+о - найдет "что-то" ч.+?о - найдет "что"

10. Найдите и замените "лишние" пробелы в тексте. Найдите с помощью "ленивого поиска" последовательность букв от пробела до пробела (слово)

11. Регулярные выражения: эскейп-символы \. - ищет точку \\ - ищет обратный слэш \+, \*, \[, \], \( - ищет плюс, звездочку, знаки скобок и т.п.

Найдите все концы абзацев, заканчивающиеся на точку.

12. Использование условий поиска Заключите все условие или его части в скобки. В поле "Заменить" \1, \2, \3 - обозначает части поиска ([^ ]+)-∙([^ ]+) → \1\2 - уберет дефисы, оставшиеся после удаления жестких концов строк. Задание: Задайте маску поиска конца прямой речи. Подсказка: используйте [ ] со списком знаков препинания

13. Предупреждение: язык регулярных выражений может немного различаться в разных редакторах и в разных языках программирования (нотацией), но в целом набор приемов и принципы поиска одинаковы. Шифр для знатоков: в NotePad++ нет: {20,40}, вместо \0 использовать \1 Еще один краткий курс по регулярным выражениям в NotePad++

Домашнее задание:
1) "приведите в порядок " файл М.Зощенко 2) Создайте список слов и отсортируйте его по алфавиту. Знаки препинания считаются как отдельные слова. Подсказка: После каждого слова вставьте конец строки. После каждого сочетания знаков препинания вставьте конец строки. Команда для сортировки: а) Плагины -- Plugin manager -- Show Plugin manager б) Установите плагин TextFX Characters в) Установите порядок сортировки,TextFX -- TextFXTool + +SortAscending г) выделите строки для сортировки и выполните команду TextFX -- TextFTools -- Sort lines case (in)sensitive
 * уберите "жесткие" концы строк
 * аккуратно обработайте переносы, оставьте по одному пробелу между словами
 * заголовок - строчными буквами, кроме первой

файлы dovlatov2.txt и zoschenko.txt лежат в дропбокcе Unit3
 * Чеклист по классному и домашнему практикуму:**