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
dlt
Janeiro 25, 2008, 1:09pm
#4
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
thingol
Janeiro 28, 2008, 11:23am
#7
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 ""
Portanto, vários desses "\" são dispensáveis.