2010-02-12 29 views
30

Me gustaría revisar todos mis archivos de código fuente y reemplazar cada aparición de k_Xyyy con k_xyyy (cambie la primera letra después de k_ de mayúscula a minúscula).¿Cómo reemplazar las letras mayúsculas por minúsculas usando expresiones regulares en Eclipse?

Estoy usando el cuadro de diálogo eclipse para buscar y reemplazar varios archivos. En este momento tengo la expresión regular \bk_([A-Z]).

¿Cómo especifico la cadena de reemplazo de la expresión regular?

+0

¿No puede usar la funcionalidad de reefiguración de Eclipse para esto? –

+0

Lo necesito con regularidad cada vez que genero entidades a partir de tablas con prefijos de nombre de columna. – chinto

Respuesta

11

Eso no es posible. O bien utilizar la funcionalidad de re-factorización de Eclipse, o las sustituyen uno a la vez:

regex  : \bk_A 
replacement : k_a 

regex  : \bk_B 
replacement : k_b 

... 

regex  : \bk_Z 
replacement : k_z 
15

simplemente resolví la misma tarea (tuvimos que dar la interfaz de .NET en la interfaz Java) utilizando el poder de VIM :)

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

Aquí se busca: (muesca opcional seguido de tipo de retorno seguido por un espacio) seguido de (letra mayúscula). Los apoyos son grupos de captura. Entonces estamos realizando un primer grupo de captura de reemplazo \ 1 minúsculo \ L segundo grupo de captura \ 2.

Esto, por supuesto, requiere que abras el archivo en Vim, pero de todos modos esto es mucho más rápido que hacer lo mismo a mano en Eclipse.

0

(para mí, ya que acabo de empezar la programación, esto era más divertido pensar) Tome $pattern_to_change y convertirlo en ASCII a decimal usando ord() .Tomar diciembre el número resultante y añadir 32. A continuación, convertir de nuevo a $desired_pattern ascii usando chr().

O simplemente descargue SublimeText y use su función Buscar y reemplazar para buscar todas las ocurrencias y reemplácelas con texto de diferencias (Sublime también tiene expresiones regulares).

Estoy seguro de que podría haber convertido mil millones a mano ya que esta publicación tiene 5 años, pero podría haber completado esto en 5 minutos con Sublime.

Editor de texto realmente útil.

1

Necesitaba hacer esto para una gran parte del código fuente donde los literales de cadena debían convertirse a minúsculas. Encontré una forma de usar Notepad ++ y el complemento Python Script, como se usa here.

+5

en Notepad ++ puede simplemente usar '\ L $ 1 \ E' en la cadena de reemplazo para convertir el primer grupo coincidente en letras minúsculas. Lo mismo funciona con \ U ... \ E para mayúsculas – fuemf5

Cuestiones relacionadas