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.

  • ¿Cómo usar los marcadores de principio y fin en regex para Java String?
  • Cómo utilizar SpannableString con Regex en android?
  • Android Java - String .replaceAll para reemplazar caracteres específicos (regex)
  • Número de tarjeta de validación de la validación de la expresión regular
  • Regex para determinar las tarjetas de crédito en Android
  • Cómo utilizar la expresión regular en android
  • Expresión regular en Android para el campo de contraseña
  • Regex para eliminar el número de pista del nombre de la canción?
  • Android / Java: comprueba si url es url válida de youtube
  • Validación de la fecha de Regex para aaaa-mm-dd
  • Regex <img> Análisis de etiquetas con src, width, height
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.