Evrenkodlu Karakterlerin Özellikleri

PHP 4.4.0 ve 5.1.0 sürümlerinde, 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ş Evrenkod dizilimi

Yukarıda xx ile belirtilen özellik isimleri Evrenkod 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
CDiğer 
CcDenetim 
CfBiçem 
CnAtanmamış  
CoÖzel kullanım  
Csİkame  
LHarf Şu özellikleri içerir: Ll, Lm, Lo, Lt ve Lu.
LlKüçük harf  
LmDeğiştirici harf  
LoDiğer harf  
LtBaşlık harfi  
LuBüyük harf  
Mİm 
McBoşluk imi  
MeKapsama imi  
MnBoşluk bırakmama imi 
NSayı 
NdOnluk sayı  
NlHarf numarası  
NoDiğer sayı  
PNoktalama 
PcBağlayıcı noktalama  
PdTire imi 
PeKapama imi  
PfSonlandırma imi  
PiBaşlatma imi  
PoDiğer noktalama  
PsAçma imi  
SSimge 
ScPara simgesi  
SkDeğiştirici simge
SmMatematiksel simge  
SoDiğer simge  
ZAyraç 
ZlSatır ayracı  
ZpParagraf ayracı  
ZsBoş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.

Evrenkod 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:

  • \p{Greek}
  • \P{Han}

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 Evrenkod 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 Evrenkod karakteridir. Gerçekte, bu, Evrenkod 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.

Evrenkodlu karakterlerle 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 Evrenkod özelliklerini kullanmamasının sebebi budur.