Problema que coincide con el patrón regex en Android

Estoy intentando buscar esta cadena:

,"tt" : "ABC","r" : "+725.00","a" : "55.30", 

Por:

 "r" : "725.00" 

Y aquí está mi código actual:

 Pattern p = Pattern.compile("([r]\".:.\"[+|-][0-9]+.[0-9][0-9]\")"); Matcher m = p.matcher(raw_string); 

He estado intentando variaciones múltiples del patrón, y un fósforo nunca se encuentra. Un segundo juego de ojos sería genial!

3 Solutions collect form web for “Problema que coincide con el patrón regex en Android”

Su regexp realmente funciona, es casi correcto

 Pattern p = Pattern.compile("\"[r]\".:.\"[+|-][0-9]+.[0-9][0-9]\""); Matcher m = p.matcher(raw_string); if (m.find()){ String res = m.toMatchResult().group(0); } 

La siguiente línea debe decir:

 if ( m.find() ) { 

¿Estás haciendo eso?

Algunos otros problemas: Estás usando . para coincidir con los espacios que rodean el colon; si eso siempre se supone que es un espacio en blanco, debe usar + (uno o más espacios) o \s+ (uno o más caracteres de espacio en blanco). Por otro lado, el punto entre los dígitos se supone que coincide con un literal . , por lo que debe escapar de ella: \. Por supuesto, dado que se trata de un literal de Java String, debes escapar de las barras invertidas: \\s+ , \\. .

No necesita los corchetes alrededor del r , y si no desea coincidir con un | delante del número debe cambiar [+|-] a [+-] .

Si bien algunos de estos problemas que he mencionado podría resultar en falsos positivos, ninguno de ellos lo impide de coincidir con entrada válida. Es por eso que sospecho que en realidad no está aplicando el regex llamando a find() . Es un error común.

La primera cosa trata de escapar de su símbolo de punto: … [0-9]+\.[0-9][0-9]
porque el símbolo de punto coincide con cualquier carácter …

Segundo: el [+|-] define un rango de caracteres pero es obligatorio …
prueba [+|-]?

Alban.

  • Regex palabra entera
  • Relacionar URI con <data> como http://example.com/algo en AndroidManifest
  • Android que convierte la cadena a la secuencia de la matriz
  • ¿Qué hace (?! A) {0}? Significa en un regex de Java?
  • Cómo utilizar la expresión regular en android
  • ¿Qué significa * + en regexp
  • Regex para eliminar espacios entre números solamente
  • Editar texto aceptar sólo números no números decimales en android
  • ¿Cómo usar Android REGEX con clases de patrón y Matcher?
  • Ant regex para nombres de paquetes android
  • Formato de registro de registro de Android c2dm
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.