(RESOLVIDO) Problema Regex

2 respostas
blackstile

Galera estou com um problena no Regex
estou com um regex que pega qualquer coisa que esteja em um determinado parte de uma URL
Por exemplo;

/cliente/william+++++/pedido/13324234
entao tenho a seguinte regex

Pattern p = Pattern.compile ("(?<=/cliente/)([^/])+\\b");
Matcher m = p.matcher(uri);
if (m.find())
{
System.out.println(m.group());
}

imprime "William"
Esse regex significa pega qualquer coisa que apos /cliente/ e que seja diferente de /
Ou seja ele deveria retornar
William+++++
Só que ele não retorna os + que esta no final
agora se eu passasse as seguintes url

/cliente/will++iam/pedido/13324234
/cliente/++william/pedido/13324234
/cliente/-william/pedido/13324234

Neste caso ele retornaria corretamente em todas as 3 alternativas.

Resumindo quando coloco qualquer caracter que não seja letra ou numero no final ele nao captura.

Você pode testar nos sites a seguir:Esse regex foi testado em minha aplicação e nao apenas nos sites

O primeiro eh um applet ou seja, java direto.
http://www.cis.upenn.edu/~matuszek/General/RegexTester/regex-tester.html
O segundo eh em flex, em um funciona e no outro nao.
http://gskinner.com/RegExr/

Valew Galera

2 Respostas

leoramos

Tu tá usando um \b no final. Ele tá pesquisando palavra inteira.

blackstile

Cara valew era isso mesmo. Testei aqui e funcionou de boa .

Brigadao

Criado 15 de setembro de 2011
Ultima resposta 15 de set. de 2011
Respostas 2
Participantes 2