Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Mencipta Ungkapan Biasa Unicode-Aware di Java?
Persamaan Unikod untuk w dan b dalam Ungkapan Biasa Java
Pelaksanaan regex Java tidak menggunakan singkatan kelas aksara w untuk "sebarang huruf , digit atau tanda baca penyambung" seperti yang dilakukan oleh pelaksanaan lain. Ini menjadikan pemadanan perkataan Unicode lebih sukar. Isu ini berlanjutan kepada pemisah perkataan b, yang juga menunjukkan tingkah laku yang tidak konsisten dalam Java.
Unicode-Aware Equivalents
Untuk menyelesaikan isu ini, seseorang boleh menulis semula corak regex menggunakan penggantian berikut:
Lain-lain Unicode Properties
Selain w dan b, regex Java kekurangan sokongan Unicode-aware untuk sifat lain. Walau bagaimanapun, sifat ini boleh dilanjutkan dengan menggunakan sintaks p, seperti yang ditunjukkan di bawah:
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
Dengan memasukkan pengganti Unicode-aware ini, seseorang boleh mencipta corak regex yang mengendalikan data Unicode dengan tepat. Contohnya, corak berikut sepadan dengan perkataan Unicode:
Pattern pattern = Pattern.compile("\w+"); // Unicode-aware \w equivalent
Corak ini boleh digunakan untuk memadankan perkataan dalam rentetan teks, tidak kira sama ada aksara ASCII atau Unicode-encoded.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Ungkapan Biasa Unicode-Aware di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!