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
- ¿Cómo validar una cadena usando java regex?
- ¿Cómo puedo eliminar la cadena de caracteres dinámicos de una cadena?
- Problema que coincide con el patrón regex en Android
- Validación de la fecha de Regex para aaaa-mm-dd
- Java no funciona con regex \ s, dice: inválido secuencia de escape
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?
- Grupos java regex con android
- Android que convierte la cadena a la secuencia de la matriz
- Matcher.replaceAll () y String.replaceAll () no parecen funcionar en Galaxy S 6
- ¿Cómo usar Android REGEX con clases de patrón y Matcher?
- Ant regex para nombres de paquetes android
- Cómo utilizar SpannableString con Regex en android?
- Palabra árabe Buscando en el archivo de texto en árabe
- Permitir sólo charcters seleccionados basados en regex en un EditText
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: obtener resultados de la devolución de llamada (red KOUSH ION)
- Incluir otros proyectos de Eclipse en un proyecto de aplicación de Android