Notepad++ Найти все вхождения заглавных букв в слова, начинающиеся с подчеркивания, и преобразовать в правильный регистр

Notepad++ Найти все вхождения заглавных букв в слова, начинающиеся с подчеркивания, и преобразовать в правильный регистр

Используя Notepad++, я хочу найти все слова, в которых ВСЕ буквы заглавные, начинающиеся с подчеркивания, и преобразовать их в правильный регистр.

Пример 1,

Find:
DimCalendarDay_DATE

Replace with:
DimCalendarDay_Date

Пример 2,

Find:
DimCalendarDay_YEAR_PERIOD_DAY

Replace with:
DimCalendarDay_Year_Period_Day

Пример 3,

Find:
First_Day

Replace with:
First_Day

Я уже ввел следующие данные в критерии замены поисковой рекламы в Notepad++:

Find what:  [_]\w*[A-Z]\w*[A-Z]\w* 
Replace with:  \L \u \1

Однако приведенное выше регулярное выражение заменяет найденный мной текст ничем.

Пожалуйста, порекомендуйте...

решение1

  • Ctrl+H
  • Найти то, что:(_[A-Z])([A-Z]*)(?![A-Z])
  • Заменить:\u$1\L$2
  • проверить Соответствие регистру
  • проверить Обернуть вокруг
  • проверить Регулярное выражение
  • Replace all

Объяснение:

(_[A-Z])    # group 1, an underscore followed by a capital
([A-Z]*)    # group 2, 0 or more capitals
(?![A-Z])   # negative lookahead, make sure we haven't capital after

Замена:

\u$1        # uppercased the content of group 1 (i.e. the first letter)
\L$2        # lowercased the content of group 2 (i.e. the rest of the match)

Данный:

DimCalendarDay_DATE
DimCalendarDay_YEAR_PERIOD_DAY
First_Day

Результат для данного примера:

DimCalendarDay_Date
DimCalendarDay_Year_Period_Day
First_Day

Скриншот:

введите описание изображения здесь

Связанный контент