Регулярное выражение \ w символьный класс в java .util.regex.Pattern на Android устройстве выдает результаты, отличные от обычной JVM.
Есть ли способ, которым \ w соответствует только [A- Za-z0-9_] на Android?
// kotlin
@Test
fun test() {
// val pu = Pattern.compile("""\w+""",Pattern.UNICODE_CHARACTER_CLASS)
// on Android: java.lang.IllegalArgumentException: Unsupported flags: 256
fun matchOrNull(pattern:String,input:String):String?{
// no UNICODE_CHARACTER_CLASS
val m = Pattern.compile(pattern).matcher(input)
return if(m.find()) m.group(0) else null
}
assertEquals( null, matchOrNull("\\w+", "-"))
assertEquals( "a", matchOrNull("\\w+", "a"))
assertEquals( null, matchOrNull("\\w+", "あ"))
// on Android: java.lang.AssertionError: expected:<null> but was:<あ>
}