Ответ 1
Это невозможно. Либо используйте функции повторного факторинга Eclipse, либо замените их по одному за раз:
regex : \bk_A
replacement : k_a
regex : \bk_B
replacement : k_b
...
regex : \bk_Z
replacement : k_z
Я хотел бы просмотреть все мои файлы исходного кода и заменить каждое появление k_Xyyy
на k_Xyyy
(переключить первую букву после k_
от верхнего регистра к нижнему регистру).
Я использую диалог eclipse для поиска и замены нескольких файлов. Прямо сейчас у меня есть регулярное выражение \bk_([A-Z])
.
Как указать строку замены регулярного выражения?
Это невозможно. Либо используйте функции повторного факторинга Eclipse, либо замените их по одному за раз:
regex : \bk_A
replacement : k_a
regex : \bk_B
replacement : k_b
...
regex : \bk_Z
replacement : k_z
Я только что решил ту же задачу (должен был превратить интерфейс .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.
Мне нужно было сделать это для огромного фрагмента исходного кода, где строковые литералы нужно было преобразовать в нижний регистр. Я нашел способ использования Notepad ++ и плагина Python Script, как используется здесь.
(для меня, поскольку я только начал программировать, это было более интересно думать)
Возьмите $pattern_to_change
и преобразуйте его из ascii в десятичный с помощью ord()
. Получите итоговое число делений и добавьте 32. Затем преобразуйте $desired_pattern
обратно в ascii с помощью chr()
.
Или просто скачайте SublimeText
и используйте функцию "Найти и заменить" для поиска "Найти все" и замените их разностным текстом (Sublime также имеет регулярное выражение).
Я уверен, что вы могли бы преобразовать один миллиард вручную, так как этот пост, как 5 лет, но вы могли бы завершить это через 5 минут с Sublime.
Действительно полезный текстовый редактор.