[RESOLVIDO] Expressão Regular procurar String "completa"...  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
RafaelVS
JavaEvangelist
[Avatar]

Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline

Pessoal,

Basicamente, o que preciso é de alguma forma de tratar uma string do jeito que ela está escrita, ignorando os caracteres especiais.

Preciso trocar a String "${root}" pela raiz de um SO especifico. Mas ao usar o replace de String, está dando o seguinte erro:

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition near index 0
${root}
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.closure(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)


Estudando para a certificação eu vi uns problemas básicos relacionados aos metacaracteres, onde apenas precisamos adicionar algumas barras..

Ex.: para tratarmos o ponto como o "caracter ponto" ao inves de o "metacaracter ponto", devemos colocar "\\.", pois se colocarmos "." estaremos procurando por qualquer caractere.

Mas para uma String completa, como faria isso? Tem como escapar uma string completa, ao invés de apenas um caracter?

This message was edited 1 time. Last update was at 13/09/2007 13:41:16


- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%)
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Acabei de responder isso agora. Você pode usar "Pattern.quote", ou então pôr um "\\Q" no começo e um "\\E" no fim da string. (Use Pattern.quote de preferência, a menos que esteja usando o Java 1.4.)

[WWW]
RafaelVS
JavaEvangelist
[Avatar]

Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline

Legal!!

Sabia que deveria existir uma solução mas não sabia como seria, nem consegui pesquisar direito pois não sabia nem que tags de busca utilizar. Como demonstrei no próprio nome do tópico hehehe

Funcionou com o Pattern.quote(""). Valeu!!

- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%)
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Para esse tipo de coisa nada substitui a leitura minuciosa do Javadoc. Veja:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html
[WWW]
RafaelVS
JavaEvangelist
[Avatar]

Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline

duplicado @@

sorry

This message was edited 1 time. Last update was at 13/09/2007 13:59:40


- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%)
RafaelVS
JavaEvangelist
[Avatar]

Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline



concordo que devemos sempre olhar o javadoc, mas nesse caso em particular eu não sabia nem por o que procurar...

precisaria de uma contextualização para explicar o que eu estava precisando e o ctrl+f do browser não tem essa funcionalidade, por isso recorri ao guj.

(sem contar que eu tava usando um método da classe String, onde a explicação do erro estava na classe Pattern... kd o encapsulamento da sun huhuhu)

- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%)
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

thingol wrote:Para esse tipo de coisa nada substitui a leitura minuciosa do Javadoc. Veja:

http://java.sun.com/j2se/1.5.0/docs/api/java/util/regex/Pattern.html


Bom, eu não quis dar uma bronca. (Eu li e reli essa página do javadoc e ainda tem coisas, principalmente os padrões "greedy", que não estão explicadas direito lá - você tem de olhar em outros sites para conseguir entender melhor). De fato a solução ao seu problema não pode ser achada facilmente no Google.
[WWW]
RafaelVS
JavaEvangelist
[Avatar]

Membro desde: 13/12/2006 09:50:16
Mensagens: 405
Localização: Recife - PE
Offline

eu interpretei errado então..
desculpe-me por qualquer coisa e obrigado pela ajuda.

- Mestrando em Engenharia de Software no CIn/UFPE;
- Pós-Graduado em Engenharia de Software na POLI/UPE;
- Bacharel em Ciência da Computação na UNICAP (Universidade Católica de Pernambuco);
- Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0 (score 95%);
- Sun Certified Web Components Developer for J2EE 1.4 Platform (score 89%)
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team