Unicode Karakterlerinini Özellikleri
UTF-8 kipi seçildiğinde soysal karakter
türleriyle eşleşen üç düzenli ifade işleci daha devreye girmiştir. Bunlar:
- \p{xx}
- xx özelliğine sahip bir karakter
- \P{xx}
- xx özelliği olmayan bir karakter
- \X
- bir genişletilmiş Unicode dizilimi
Yukarıda xx
ile belirtilen özellik isimleri Unicode
genel sınıf özellikleriyle sınırlıdır. Belirtilen her karakter, belli
bir özelliğin iki harflik kısaltmasındaki harflerle aynı olmak
zorundadır. Perl ile uyumluluk için, olumsuzlama işleci kaşlı ayraç ile
özellik kısaltmasının ilk harfi arasına konmalıdır. Örneğin,
\p{^Lu}
şablonu \P{Lu}
ile
aynıdır.
Eğer \p
veya \P
ile tek bir harf belirtilirse bu harfle başlayan tüm özellikleri ifade edecektir. Böyle bir durumda, olumsuzlama işleci kullanılmayacaksa kaşlı ayraçların kullanımı isteğe bağlıdır. Yani, bu iki örnek aynı etkiye sahiptir:
\p{L}
\pL
Desteklenen özellik kodları
Özellik |
Eşleşmeler |
Açıklamalar |
C | Diğer | |
Cc | Denetim | |
Cf | Biçem | |
Cn | Atanmamış
| |
Co | Özel kullanım
| |
Cs | İkame
| |
L | Harf |
Şu özellikleri içerir: Ll ,
Lm , Lo , Lt ve
Lu . |
Ll | Küçük harf
| |
Lm | Değiştirici harf
| |
Lo | Diğer harf
| |
Lt | Başlık harfi
| |
Lu | Büyük harf
| |
M | İm | |
Mc | Boşluk imi
| |
Me | Kapsama imi
| |
Mn | Boşluk
bırakmama imi | |
N | Sayı | |
Nd | Onluk sayı
| |
Nl | Harf numarası
| |
No | Diğer sayı
| |
P | Noktalama | |
Pc | Bağlayıcı noktalama
| |
Pd | Tire imi | |
Pe | Kapama imi
| |
Pf | Sonlandırma imi
| |
Pi | Başlatma imi
| |
Po | Diğer noktalama
| |
Ps | Açma imi
| |
S | Simge | |
Sc | Para simgesi
| |
Sk | Değiştirici simge
|
Sm | Matematiksel simge
| |
So | Diğer simge
| |
Z | Ayraç | |
Zl | Satır ayracı
| |
Zp | Paragraf ayracı
| |
Zs | Boşluk ayracı
| |
"InMusicalSymbols" gibi ek özellikler PCRE tarafından
desteklenmemektedir.
Harf büyüklüğüne duyarsız eşleşme belirtilmesi bu önceleme
dizilimlerini etkilemez. Örneğin, \p{Lu}
şablonu
daima sadece büyük harflerle eşleşecektir.
Unicode karakter kümeleri, belirli dillere ait olarak tanımlanır.
Bu kümelerden birindeki bir karakter, bir dil adı kullanılarak
eşleştirilebilir. Örneğin:
Tanımlanmış bir dilin parçası olmayanlar ortak
(Common
) olarak bir araya toplanır.
Mevcut dil listesi:
Desteklenen Diller
Arapça |
Ermenice |
Avestan |
Balice |
Bamum |
Batak |
Bengali |
Bopomofo |
Brahmi |
Braille |
Bugice |
Buhid |
Kanadalı_Aborijin |
Karya |
Çakma |
Cham |
Çeroki |
Ortak |
Kıpti |
Çivi Yazısı |
Kıbrıslı |
Kiril |
Deseret |
Devanagari |
Mısır_Hiyeroglifleri |
Etiyopyalı |
Gürcü |
Glagolitik |
Gotik |
Yunan |
Gujarati |
Gurmukhi |
Han |
Hangul |
Hanunoo |
İbranice |
Hiragana |
İmparatorluk_Aramice |
Miras |
Yazıtlı_Pehlevi |
Yazıtlı_Partiyalı |
Cavaca |
Kaithi |
Kannada |
Katakana |
Kayah_Li |
Kharoshthi |
Kımer |
Lao |
Latince |
Lepcha |
Limbu |
Doğrusal_B |
Lisu |
Likyaca |
Lidyaca |
Malayalamca |
Mandaik |
Meetei_Mayek |
Meroitik_Elyazısı |
Meroitik_Hiyeroglifler |
Miao |
Moğolca |
Myanmar |
New_Tai_Lue |
Nko |
Ogham |
Eski_İtalik |
Eski_Farsça |
Eski_Güney_Arapçası |
Eski_Türk |
Ol_Chiki |
Oriya |
Osmanya |
Phags_Pa |
Fenike |
Rejang |
Runik |
Samiriyeli |
Saurashtra |
Sharada |
Shavian |
Sinhala |
Sora_Sompeng |
Sundaca |
Syloti_Nagri |
Süryanice |
Tagalog |
Tagbanwa |
Tai_Le |
Tai_Tham |
Tai_Viet |
Takri |
Tamil |
Telugu |
Thaana |
Thai |
Tibetçe |
Tifinagh |
Ugaritik |
Vai |
Yi |
|
|
|
|
\X
öncelemi, bir Unicode genişletilmiş grafem kümesiyle
eşleşir. Genişletilmiş bir grafem kümesi, tek bir glif oluşturmak için
birleşen bir veya daha fazla Unicode karakteridir. Gerçekte, bu, Unicode
eşdeğeri olarak düşünülebilir. Çünkü onu oluşturmak için gerçekte kaç
karakter kullanıldığına bakılmaksızın, oluşturulmuş bir karakterle
eşleşecektir.
8.32'den daha eski PCRE sürümlerinde (birlikte verilen PCRE kitaplığını
kullanırken 5.4.14'ten önceki PHP sürümlerine karşılık gelir),
\X
ile (?>\PM\pM*)
eşdeğerdir. Yani,
"mark" özelliği olmayan bir karakterle, ardından "mark" özelliğine sahip
sıfır veya daha fazla karakterle eşleşir ve diziyi bir atomik grup olarak
ele alır (aşağıya bakın). "Mark" özelliğine sahip karakterler tipik olarak
önceki karakteri etkileyen aksanlardır.
Unicode karakterleriyle eşleşme hızlı değildir, çünkü
PCRE on beş binden fazla karakter içeren bir kümeyi araştırmak
zorundadır. \d
ve \w
gibi
geleneksel işleçlerin PCRE'de Unicode özelliklerini kullanmamasının
sebebi budur.