Duvida com ReplaceAll

1 resposta
kemperacc

Pessoal estou com o seguinte problema:

1 - Tenho varias Strings assim:

arp=enabled auto-negotiation=yes comment="Isto eh um comentario qualquer" disabled=no full-duplex=yes

Estas linhas sao compostas de CHAVE=VALOR, como no exemplo arp=enabled, ou, full-duplex=yes, etc…

A questão é que eu preciso “quebrar” esta linha nestes atributos.

Utilizei:

String[] valores = minhaString.split(" ");    //Um espaco em branco é utilizado para separar cada par CHAVE/VALOR

Isto quebrou corretamente apenas uma parte, e obviamente como o comentario contem espacos, o mesmo ficou errado.

valores[0] = "arp=enabled"
valores[1] = "auto-negotiation=yes"
valores[2] = "comment=\"Isto"
valores[3] = "eh"
valores[4] = "um"
valores[5] = "comentario"
valores[6] = "qualquer\""
valores[7] = "disabled=no"
valores[8] = "full-duplex=yes"

Bom, o meu problema é que o comentario contém espacos, porém, como podem perceber o comentario esta entre aspas, haveria alguma forma do metodo split entender que não é para quebrar o que estiver dentro das aspas, já que usa expressoes regulares?

Acabei de comprar o livro do Aurelio sobre expressoes regulares, mas so chega na terça feira que vem :frowning:

Abraços a todos

1 Resposta

kemperacc

Caraculis…

Resolvi!

String[] valores = minhaString.split(" (?=(?:[^\"]*$)|(?:[^\"]*\"[^\"]*\"[^\"]*)*$)");    //Um espaco em branco é utilizado para separar cada par CHAVE/VALOR

Bem, eu nao entendi nada do que eu fiz, mas funcionou… Peguei um exemplo na internet e fui editando…

Agora eh soh esperar o livro chegar para decifrar esse bicho ai…

[]s

Criado 3 de agosto de 2009
Ultima resposta 3 de ago. de 2009
Respostas 1
Participantes 1