Expressões regulares no Eclipse  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
escordeiro
Java Ninja
[Avatar]
Membro desde: 20/08/2003 09:31:08
Mensagens: 257
Localização: Belo Horizonte
Offline

Olá pessoal,

nem sei se tem jeito de fazer o que eu quero, mas é o seguinte: começamos um projeto usando uma notação para nomes de atributos de classes e variáveis que separava palavras por '_', como "exec_thread" ou "algorithm_name".

Estamos com vontade de, agora, usar a convenção de código da Sun para Java (http://java.sun.com/docs/codeconv/), transformando os nomes acima em "execThread" e "algorithmName", por exemplo.

Usando as expressões regulares no Find/Replace do Eclipse, é possível pegar, por exemplo, o primeiro caractere que vem depois de um underscore e substituir pelo mesmo caractere em upper case?

Alterar mais de 100 classes na mão, mesmo usando o replace normal, vai ser um pé no saco...

[]'s

Flickr
[Email] [Yahoo!] [MSN] [ICQ]
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Da sim, numa boa... eu so nao sei fazer essa regex
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
escordeiro
Java Ninja
[Avatar]
Membro desde: 20/08/2003 09:31:08
Mensagens: 257
Localização: Belo Horizonte
Offline

Idem hehehehhee

Flickr
[Email] [Yahoo!] [MSN] [ICQ]
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

acho que num rola não
não tem com dizer para colocar em uppercase uma das letras da string.

o search seria mais ou menos o seguinte:
(.*)_(.?)(.*)

ai tu poderia utilizar no resultado:
$1 - a primeira palavra
$2 - a primeira letra da segunda palavra
$3 - o resto da segunda palavra


mas não tem como fazer o $2 em uppercase no resultado
isto é uma limitação da regexp
mas é quase certeza, não sou nenhum mestre de ER, então pode ser que eu tenha faltado neste dia de aula

mas pelo menos a busca ja ta prontinha ai


se tu tem um linux, com o sed da para fazer isto legal, ele usa um superset se ER para fazer as substituições

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

ahh, a falta do que fazer agora, me compeliu a abrir o jEdit que tem a opção de busca por ER e replace por resultado de uma expressão beanshel, que resolve o teu problema, e ele ainda tem a opção de executar o mesmo relpace em todos os buffers abertos, o que faz com que tu resolva teu problema, com um pouquinho de fé, literalmente, ao apertar de um botão

testa ai,
instala o jedit, abre 2 ou 3 arquivos destes que tu vai trabalhar, para teste
aperta CTRL+F
marca a opção de expressões regulares
marca a checkbox "return value of a beanshell ..."
coloca na caixa de procura:
(.*)_(.?)(.*)

e na caixa de replace
_1 + _2.toUpperCase() + _3

marca "All Buffers"

e depois de rezar um pai nosso e tres ave marias
clica em replace all

e deve ter corrigido tudinho


testa ai e avisa pra nois se funcionou

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
escordeiro
Java Ninja
[Avatar]
Membro desde: 20/08/2003 09:31:08
Mensagens: 257
Localização: Belo Horizonte
Offline

nossa...

vou tentar pq agora fiquei curioso, brigadão hehehehe

Eu resolvi da seguinte forma (bem animal mesmo, pode rir):

1) Find in files: _a
1.1) Replace all with: A

2) Find in files: _b
2.1) Replace all with: B

.
.
.
26) Find in files: _z
26.1) Replace all with: Z


Quinze minutinhos de tarefas repetitivas e tudo resolvido...

Flickr
[Email] [Yahoo!] [MSN] [ICQ]
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

acho que a minha segunda resposta no jedit era mais fácil

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team