Estou fazendo alguns testes sobre expressões regulares no java somente para fins didáticos.
E pelo pouco que sei sobre expressões regulares, você poderia casar o caractere “(”, utilizando a expressão \(, porém, isso não está acontecendo no java. Para eu conseguir casar o caractere “(” estou tendo que utilizar “[(]”. O caractere “” não funciona como escape de caractere?
Notei também que no Java se utiliza “\\d” para casar dígitos, como também poderia ser utilizado “[0-9]”. Existe algum motivo para isso?
Outra situação, é que um espaço realmente casa com espaço, mas também existe o “\\s”. É somente para fins de legibilidade?
Na verdade, funciona sim.
A questão é que você precisa entender como o java implementa e traduz isso:
"\";//Resulta em erro, afinal, este caractere simboliza, ao interpretador do java, que o próximo caractere será escapado, como em "\n", "\t", etc.
"\\";//Resulta em uma String com o caractere '\', uma vez que o interpretador do java entende que você não quer escapar o próximo caractere. Como em: "C:\\temp\\arquivos\\etc";
No teu caso, você vai precisar burlar isso, fazendo algo como
"\\\{"
1 curtida
Hahaha… Que tenso.
Muito obrigado Luiz. Tirou minhas dúvidas.
@edit
Continua dando erro utilizando
“\\\(”
Ah, sim, eu acabei sendo imprudente.
Onde coloquei
"\\\{"
Por favor, leia
"\\\\{"
1 curtida
Nossa, legibilidade fica complicada assim ein… rs
Vou utilizar o:
"[{]"
Acho que fica mais simples de entender ao lerem o código.
Muito obrigado.
Pequenos problemas derivados da abordagem da linguagem.
Eu não manjo lhufas de regex, mas já tive vários problemas com isso.
1 - pode usar “\\(” que vai funcionar.
2 - se você usar " " vai casar apenas com espaço em branco simples, se você usar “\s” vai casar além do espaço em branco, finais de linha e tabulações
Mendes, quando utilizo \( não funciona.
Estude Linguagens Formais e Compiladores, vai te ajudar bastante