#регулярные_выражения #pcre
Например, есть много строк вида: Термин — определение. Как регулярными выражениями в Notepad++ сделать, чтобы термин был написан заглавными (прописными) буквами — ТЕРМИН?
Ответы
Ответ 1
Протестировано на Sublime Text 3. Предположим, «термин» и «определение» состоят из любых символов кроме переноса строки (т. к. согласно условиям автора саму строку составляют "Термин — определение"). Тогда: Найти: (.*?)( — .*) Заменить: \U$1\E$2 Было: Россия — Москва Гаити — Порт-О-Пренс Соломоновы острова — Хониара 4. тринидад и тобаго — Порт-оф-Спейн Стало: РОССИЯ — Москва ГАИТИ — Порт-О-Пренс СОЛОМОНОВЫ ОСТРОВА — Хониара 4. ТРИНИДАД И ТОБАГО — Порт-оф-Спейн Демонстрация: Пояснения: (.*?) — любые 0 или более символов кроме переноса строки, используется ленивый квантор; ( — .*) — пробел — тире — пробел — любые 0 или более символов кроме переноса строки. \U$1\E — содержимое первого подвыражения переводится в верхний регистр; $2 — второе подвыражение остаётся неизменным. С поддержкой шаблона поиска проблем возникнуть не должно, а вот в регулярном выражении замены используются мета-символы изменения регистра: \U перевести в верхний регистр, \E первые буквы слов в верхнем регистре, \L перевести в нижний регистр. Приведённые в таблице мета-символы замены являются специфичной особенностью некоторых текстовых редакторов, это нестандартное поведение для регулярных выражений. Таблица поддержки мета-символов замены │ \U │ \E │ \L ──────────────┼─────┼─────┼────── Notepad++ │ + │ - │ + SublimeText3 │ + │ + │ +Ответ 2
А точно надо регуляркой? Просто там же можно найти все соответствия того, что Вам нужно (ctrl+f) и преобразовать регистр (ctrl+shift+u)
Комментариев нет:
Отправить комментарий