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