Expressao regular  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

Gente, to precisando de uma expressao regular e nao consigo me virar:

[link http://www.guj.com.br] tem que virar <a href="http://www.guj.com.br">

detalhes:
a url nao pode conter aspas, &0025; (por exemplo esse eh o codigo das aspas) e pronto.
como fazer isso?

o melhor q fiz foi:



para:



dicas por favor?

gui

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
Paulo Silveira
Administrador
[Avatar]

Membro desde: 07/08/2002 18:38:50
Mensagens: 4204
Localização: São Paulo
Offline



usa isso que mandei.

http://blog.caelum.com.br twitter: @paulo_caelum


[Email] [WWW]
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

o q eu mandei tinha umas barras invertidas:

\[link (.+?)\]

isso aqui vai funcionar do jeito normal, mas nao vai brecar nos codigos &0025; e ". eu preciso que se possuir esses codigos ele nao faca a transformacao. e ai?

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
Rafael Steil
Administrador
[Avatar]

Membro desde: 31/08/2002 02:35:53
Mensagens: 5984
Localização: São Paulo
Offline

Eu consegui dessa forma:



Rafael

"working code attracts people who want to code. Design documents attract people who want to talk about coding - Charles Miller"

http://rafaelsteil.com
http://twitter.com/rafaelsteil
http://www.jforum.net
http://www.flickr.com/photos/rafaelsteil
[Email] [WWW]
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

rafael, o codigo q vc passou:


retornou:


e o problema aqui:

retornou:
[code][link http://www.guj.com.br?a=b][code]
pois o \w soh pega de a a z, A a Z e 0 a 9.
nao funciona.

esse codigo elimina a possibilidade do href ser um mailto ou ftp, por exemplo, nao posso deixar o http entao tenho q tirar possiblitar tambem o /!!!

sem contar q devo liberar para todos os caracteres padrao de uma request get, o q nao pode me fechar soh aos a a Z, A a Z e 0 a 9. e nao to nem um poco afim de descobrir quais sao todos e por na expressao. entao o certo eh aceitar todos exceto os q nao devem ser aceitados (aspas duplas, open tag, fecha tag e os mesmos tres em seus codigos &

isso que preciso, seria mais o menos o seu codigo mas em vez de \w|. algo do tipo:
^[&0025;|"|>|<|&0026;|&0027;]

dicas?

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
Guilherme Silveira
Administrador

Membro desde: 14/08/2002 10:09:26
Mensagens: 1096
Localização: Sao Paulo
Offline

\[link ([^"|<|>|[\u00260022]|[\u0026003c]|[\u0026003e]|[\u00260022]]+?)\]

achei o pattern perfeito
um pouco mais complicado q as ideias iniciais neh?
ele elimina todos os links q possuirem aspas, inicia tag fecha tag e ampersand codificado
o codig oesta como a expressao eh, e nao como ela deve ser usada em java (antes de aspa dupla e barra invertida deve inserir uma barra invertida)
se o cara tentar codificar tambem as aspas e coisa e tal tambem nao vai funcionar

-------------------------------------------------------
Guilherme Silveirahttp://blog.caelum.com.br
[Email] [WWW] [MSN]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team