Équivalents Unicode pour w et b dans les expressions régulières Java
L'implémentation des expressions régulières de Java n'utilise pas les raccourcis de classe de caractères w pour "n'importe quelle lettre , chiffre ou ponctuation de connexion" comme le font d'autres implémentations. Cela rend la correspondance des mots Unicode plus difficile. Le problème s'étend au séparateur de mots b, qui présente également un comportement incohérent en Java.
Équivalents compatibles Unicode
Pour résoudre ces problèmes, on peut réécrire un modèle d'expression régulière. en utilisant les remplacements suivants :
Autre Propriétés Unicode
En plus de w et b, les expressions rationnelles Java ne prennent pas en charge Unicode pour d'autres propriétés. Cependant, ces propriétés peuvent être étendues en utilisant la syntaxe p, comme indiqué ci-dessous :
Java Syntax | Unicode Property |
---|---|
p{Lower} | Unicode Lowercase |
p{Upper} | Unicode Uppercase |
p{ASCII} | ASCII |
p{Alpha} | Unicode Alphabetic |
p{Digit} | Unicode Digit |
p{Alnum} | Unicode Alphanumeric |
p{Punct} | Unicode Punctuation |
p{Graph} | Unicode Graph |
p{Print} | Unicode Printable |
p{Blank} | Unicode Blank |
p{Cntrl} | Unicode Control |
p{XDigit} | Unicode Hexadecimal Digit |
p{Space} | Unicode Space |
Unicode-Aware Regex
En incorporant ces substituts compatibles Unicode, on peut créer des modèles d'expressions régulières qui gèrent les données Unicode avec précision. Par exemple, le modèle suivant correspond aux mots Unicode :
Pattern pattern = Pattern.compile("\w+"); // Unicode-aware \w equivalent
Ce modèle peut être utilisé pour faire correspondre des mots dans des chaînes de texte, que les caractères soient codés en ASCII ou en Unicode.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!