Сайт курса «Лингвистические данные», бакалавры 1 курс НИУ ВШЭ
Практикум в продвинутом текстовом редакторе
Что понадобится: NotePad++. Владельцы Mac-ов используют аналоги: редакторы Atom, TextWrangler, Fraise и т.д.
Типы кодировок текста для русского языка:
DOS, KOI8-R, Cyrillic Windows cp1251, Unicode (UTF-8 с/без BOM, цифровой подписи)
В меню “Кодировки” замените текущую на Windows-1251 (оцените эффект:), затем обратно на UTF-8 без BOM.
Если вы открываете файл и видите “кракозябры”, то с помощью меню “Кодировки” можно подобрать правильную.
“Преобразовать в…”: переводит файл в другую кодировку (затем файл нужно сохранить). Windows-1251 называется ANSI.
Отметьте чекбоксы: Отображать пробелы и табуляции, отображать символы конца строки (отображать все символы).
Непечатаемые символы, обозначающие конец строки:
Win-формат: CR+LF \r\n
old-Mac-формат: CR \r
UNIX-формат: LF \n
В режиме отображения символов конца строки вы увидите “СR”, “LF”, которые при поиске и замене в расширенном режиме и в режиме регулярных выражений задаются как эскейп-символы \r
, \n
, соответственно.
автоматически переносит текст на новую строку, как в Word. Видимые концы строк при этом не сохраняются (являются “мягкими”).
Для работы вы можете скопировать любой текст в редактор.
Меню для поиска и замены доступно по горячей клавише Ctrl+F (см также меню Поиск и замена или Правка, в зависимости от редактора)
Отмена операции: Ctrl+Z
По умолчанию, в NotePad++ поиск происводится начиная с текущей позиции курсора до конца файла, поставьте чек на “Зациклить поиск”, чтобы замена проводилась по всему файлу.
\t
Замените все пробелы на табуляцию и затем наоборот.
\r\n
или \n
, в зависимости от формата конца строк, см. выше.Замените концы строк на пробел.
^
- начало строки, $
- конец строки
к[аоиу]т
- найдет кат, кот, кит, кут
[а-яё]
- найдет все буквы русского алфавита
[0-9a-z@_.]
- все знаки, допустимые в адресе электронной почты
Узнайте, есть ли в тексте латинские буквы?
[^а-я]
- “крышка” обозначает НЕ, т. е. все символы, кроме указанного диапазона а-я.
[^!]$
- найдет концы абзацев, не заканчивающиеся на восклицательный знак
.
- любой символ
.+
- повтор (любого символа) 1 или более раз
.*
- повтор (любого символа) 0 или более раз
е+
- найдет е, ее, еее…
[нм]+
- найдет сочетания нн, мм, нм, мн, ммм, нннн, мнннннм…
л.+
- найдет букву л и далее все символы до конца строки
л[а-яё]+
- что найдется здесь?
˽я[а-яё]*
- (в начале пробел) найдет слова, начинающиеся с я, в том числе слово я
Этот поиск “жадный” - он будет искать строку максимальной длины, соответствующую условию в “Искать”.
Запрос <.*>
в строке <p>что-то здесь</p>
найдет всю строку целиком: <p>что-то здесь</p>
Нежадный (“ленивый”) поиск:
.+?
.*?
– ищет до первого вхождения символа, указанного после ?
<.*?>
- найдет тег <p>
, затем тег <p>
: <p>что-то здесь</p>
ч.+о
- найдет "что-то"
ч.+?о
- найдет "что"
Найдите с помощью “ленивого поиска” последовательность букв от пробела до пробела (слово).
\.
- ищет точку
\\
- ищет обратный слэш
\+
, \*
, \[
, \]
, \(
- ищет плюс, звездочку, знаки скобок и т.п.
Найдите все концы абзацев, заканчивающиеся на точку.
Заключите все условие или его части в скобки.
В поле “Заменить”
\1
, \2
, \3
- обозначает части поиска, которые в строке поиска заключены в первую, вторую и третью пару скобок, соответственно
([^ -])- ([^ -])
→ \1\2
- уберет дефисы, оставшиеся после удаления жестких концов строк.
Задание: Задайте маску поиска конца прямой речи.
Подсказка: используйте [ ]
со списком знаков препинания
Для знатоков:
\d+{3,5}
- арабские цифры повторяются от 3 до 5 раз (в NotePad++ нет)\0
обозначает все условие поиска (не во всех редакторах доступно)$1
вместо \1
и т.д. – в редакторе Atom (подъязык регулярных выражений для Perl)Еще один краткий курс по регулярным выражениям в NotePad++
убрать ударения
заменить прописные буквы строчными в заголовке
заменить пробелы в начале абзацев на табуляцию
убрать "жесткие" концы строк, оставив деление на абзацы
при этом аккуратно обработать слова с переносами
убрать "лишние" пробелы (два и больше)
Выделите символ ударения, меню Поиск → Замена,
Найти: ˊ
Заменить: (оставьте пустым) Режим поиска: обычный Заменить всё
Преобразуйте заголовок, заменив прописные буквы строчными
Правка → Преобразовать выделение → строчные
Замените 5 пробелов в начале строки на знак табуляции.
Найти: ˽˽˽˽˽
(5 пробелов)
Заменить: \t
Режим поиска: расширенный
Замените концы строк на пробел
Найти: \r\n
Заменить: ˽
(1 пробел). Режим поиска: расширенный
Верните концы строк в конце абзацев. (Догадайтесь, как). Подсказка: абзацы начинаются с табуляции. \t нужно заменить на нее же, но перед ней вставить……)
0) сохраните содержимое файла в новый файл dovlatov_wordlist.txt
1) переведите все слова в нижний регистр (Правка -> Конвертировать Регистр / Edit -> Convert case to…)
2) сделайте так, чтобы каждое слово шло с новой строки, вставив концы строк
3) сделайте так, чтобы каждый знак препинания также шел с новой строки
4) отсортируйте строки по алфавиту (Правка -> Операции со строками -> Сортировать по возрастанию / Edit -> Line operations -> Sort lines lexicographically ascending).
5) удалите повторяющиеся строки с помощью регулярных выражений
^(.*\r\n)\1+
-> \1
В файле с текстом разметьте начало и конец прямой речи с помощью тега
-- <speech>Не думаю</speech>, -- сказал редактор, потом вдруг
рассердился, -- <speech>хватит! Вечные отговорки! Всё не как
у людей! Извольте одеваться так, как подобает
работнику солидной газеты!</speech>
Все ли реплики прямой речи вам удастся так разметить?