Equivalentes Unicode para \ w e \ b em expressões regulares Java?
Muitas implementações modernas de regex interpretam o\w
taquigrafia da classe de caracteres como "qualquer letra, dígito ou pontuação de conexão" (geralmente: sublinhado). Dessa forma, uma regex como\w+
combina palavras comohello
, élève
, GOÄ_432
ougefräßig
.
Infelizmente, Java não. Em Java,\w
é limitado a[A-Za-z0-9_]
. Isso dificulta palavras correspondentes como as mencionadas acima, entre outros problemas.
Parece também que o\b
o separador de palavras corresponde em locais onde não deveria.
Qual seria o equivalente correto de um .NET, compatível com Unicode\w
ou\b
em Java? Quais outros atalhos precisam ser "reescritos" para torná-los compatíveis com Unicode?