Как заменить заглавные буквы на строчные, используя регулярные выражения в Eclipse? - PullRequest
30 голосов
/ 12 февраля 2010

Я хотел бы просмотреть все мои файлы исходного кода и заменить каждый раз, когда k_Xyyy на k_xyyy (переключите первую букву после k_ с прописных на строчные).

Я использую диалоговое окно eclipse для поиска и замены нескольких файлов. Прямо сейчас у меня есть регулярное выражение \bk_([A-Z]).

Как указать строку замены для регулярного выражения?

Ответы [ 4 ]

16 голосов
/ 24 июля 2012

Я только что решил ту же задачу (должен был превратить интерфейс .net в интерфейс Java), используя возможности VIM:)

void DoMethod1 -> void doMethod1
Foo PerformMethod2 -> Foo performMethod2
:%s/\(^\s*\w\+\s\+\)\([A-Z]\)/\1\L\2/g

Здесь мы ищем (необязательный отступ, за которым следует тип возврата, затем пробел) и затем (заглавная буква). Брекеты - это группы захвата. Затем мы выполняем замену первой группы захвата \ 1 строчной буквы \ L второй группы захвата \ 2.

Это, конечно, требует, чтобы вы открывали файл в Vim, но в любом случае это намного быстрее, чем делать то же самое вручную в Eclipse.

11 голосов
/ 12 февраля 2010

Это невозможно. Либо используйте функцию рефакторинга Eclipse, либо заменяйте их по одному:

regex       : \bk_A
replacement : k_a 

regex       : \bk_B
replacement : k_b 

...

regex       : \bk_Z
replacement : k_z 
1 голос
/ 26 марта 2014

Мне нужно было сделать это для огромного куска исходного кода, где строковые литералы нужно было преобразовать в строчные. Я нашел способ, используя Notepad ++ и плагин Python Script, используя здесь .

0 голосов
/ 09 ноября 2013

(для меня, так как я только начал программировать, об этом было интереснее думать) Возьмите $pattern_to_change и преобразуйте его из ascii в десятичное число, используя ord(). Возьмите полученное число dec и добавьте 32. Затем преобразуйте $desired_pattern обратно в ascii, используя chr().

Или просто загрузите SublimeText и используйте его функцию «Найти и заменить», чтобы найти все вхождения и заменить их разностным текстом (Sublime также имеет регулярное выражение).

Я уверен, что вы могли бы конвертировать один миллиард вручную, поскольку этому посту уже 5 лет, но вы могли бы завершить его за 5 минут с помощью Sublime.

Действительно полезный текстовый редактор.

...