Diferencia de regex de Java y Android

¡Buen día! Tengo un patrón regex:

Pattern p = Pattern.compile("^[a-zA-Z_\\$][\\w\\$]*(?:\\.[a-zA-Z_\\$][\\w\\$]*)*$"); 

Debería decirme si el nombre del paquete java / android es legal o no. Funciona bien en escritorio java, pero falla en los dispositivos Android

Digamos que tengo algunos nombres de paquetes:

  ". .", "ПАвыапЫВАПыва", "com.mxtech.ffmpeg.v7_neon", ... 

La prueba debe mostrar que el único paquete válido es "com.mxtech.ffmpeg.v7_neon", pero también muestra que la cadena de prueba

 " _ПАвыапЫВАПыва\_ " 

es válida. ¿Por qué? (Es cirílico.)

¿Cuál es la diferencia entre las realizaciones de Android y Desktop?

One Solution collect form web for “Diferencia de regex de Java y Android”

El problema es causado por el hecho de que \w en Android regex es Unicode consciente.

Reemplazar con [A-Za-z0-9_] para que coincidan sólo con letras ASCII, dígitos y un guión bajo.

Consulte la referencia de Pattern Android :

Tenga en cuenta que estas clases incorporadas no sólo cubren el rango ASCII tradicional. Por ejemplo, \w es equivalente a la clase de caracteres [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}] . Si realmente desea coincidir sólo con caracteres ASCII, especifique los caracteres explícitos que desea .

  • Android Java - String .replaceAll para reemplazar caracteres específicos (regex)
  • Expresión regular para eliminar todos los caracteres no imprimibles
  • ¿Cómo busco una lista de correo electrónico para un formato determinado?
  • Cómo puedo encontrar todas las coincidencias con una expresión regular en android
  • PHP - RegEx Números de teléfono con o sin código de país
  • ¿Puedo hacer regex reemplazar en Android con grupos del partido?
  • Cómo colorear texto utilizando Regex en android
  • ¿Hay una manera rápida de reconocer códigos HTML ASCII en una cadena o TextView?
  • Identificar el tipo de patrón de regex
  • División de la cadena con RegEx en Android
  • Regex no funciona en Android pero funciona bien en Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.