[RESOLVIDO] Expressões Regulares, tem como simplificar?

Senhores,

eu fiz essa expressão:

String delim ="[\n]|[\s]|[\t]|[/-]|[\(]|[\)]|[\{]|[\}]|[\*]|[,]|[;]|[+]|[%]|[\?]|[@]|[\$]|[]]|[!]|[<]|[>]|[\|]|[=]|[:]|[~]|[\.]|[\']|[\[]|[`]|[\\"]|[\^]"; Pattern padrao = Pattern.compile(delim); Matcher mat = padrao.matcher(entrada); //...

Ela está cheio do operador | (ou). Alguém sabe se é possível subsituir por um simbolo equivalente ao IN ou contido em?

Tem como simplificar essa expressão?

vw

Ps: já pesquisei no site: http://www.regular-expressions.info/quickstart.html

Já considerou usar uma lista?

Ex: se você quer A ou B você usa [AB].

To meio sem tempo de analisar essa tua expressão mas tenta pensar por esse caminho.

[quote=emerleite]Já considerou usar uma lista?

Ex: se você quer A ou B você usa [AB].

To meio sem tempo de analisar essa tua expressão mas tenta pensar por esse caminho.[/quote]

Eu já tinha tentado, e como tem que inserir muitos simbols \ eu estava cometendo um erro,
agora deu certo, ficou assim:

        String delim ="[\n\s\t/\-\(\)\{\}\*,;+%\?@\$\]!<>\|=:~\.\'\[`\\"\^\_]";

vw

Só por curiosidade, pra quê você precisa dessa er?

Estou escrevendo um parse…

é uma camada intermedíaria que antecede o banco de dados, ela irá “filtrar” algumas funções, converter a query, enviá-la ao servidor e depois de obtido a resposta, fazer os calculos e retornar ao usuário através de um ResultSet.

fw

parece bacana…
:smiley:

 String delim ="[\n\s\t/\-\(\)\{\}\*,;+%\?@\$\]!<>\|=:~\.\'\[`\\"\^\_]";  

Pode ser mais simples ainda.
Apenas os seguintes caracteres são especiais dentro de "[]":

  • o sinal "]" (se não estiver imediatamente depois do "[" ou de um "-")
  • o "-" (se não estiver imediatamente depois do "["
  • a combinação "&&"
  • o "&quot;

Portanto, vários desses "\" são dispensáveis.