"Eksi - dize tüm avrupa ve doğu alfabe harflerini ve" "(boşluk) ve" sadece varsa Yani değer false veya true almak gerekir. Bazı $ bir dize ile böyle bir şey yapmak nasıl?
İşte regular-expressions.info Unicode ve PHP konuda söyleyeceklerini bulunuyor:
Regex fonksiyonların en önemli set
preg
ile başlar. Bu fonksiyonlar PCRE kitaplığı (Perl-uyumlu düzenli ifadeler) etrafında bir PHP sarıcı vardır. şey bu web sitesinde PHP'ninpreg
işlevleri strong> için geçerlidir üzerinde düzenli ifade öğretici PCRE regex lezzet hakkında söyledi. Düzenli ifadeler kullandığı tüm yeni PHP kodu içinpreg
işlevleri kullanmanız gerekir.Özel bir seçenek yerine 8 bitlik varsayılan eşleme modu Unicode eşleme modunda açar
/u
hangi. Sen (/u
\x{FFFF}
,\X
veya\p{L}
Unicode karakterleri, graphemes, özellikleri maç veya {[kullanma, düzenli ifadeler için belirtmelisiniz 5)]}. PHP UTF-8 dize olarak ziyade bir ASCII dizesi olarak'/regex/u'
yorumlayacaktır.
Unicode standardı yerler birine her atanan kod noktası (karakter) script. Bir komut belirli bir insan yazı sistem tarafından kullanılan kod noktaları grubudur. Tay gibi bazı komut dosyaları tek bir insan dili ile gelmektedir. Latince gibi diğer komut birden fazla dil kapsar.
Çok az düzenli ifade motorları bugün Unicode komut dosyalarını destekler. Bu öğretici, sadece JGsoft motor, Perl ve tartışılan tüm lezzetleri PCRE can match Unicode scripts. İşte tüm Unicode komut tam listesi:
\p{Cyrillic}
- [... Gerisi atlanmış]
Bir dize only PHP Kiril harflerinden oluşur görmek istiyorsanız eğer, bu nedenle, bu normal bir ifade karşı maç için deneyebilirsiniz:
/^\p{Cyrillic}*$/u
Bu deneyin:
if (preg_match('/^[\p{L&} -]+$/u', $a)) {
# Only letters (any script), spaces and hyphens
} else {
# Emtpy string or other characters too
}
\p{L}
ideogramlar (örneğin Çince karakter) de dahil olmak üzere herhangi bir komut bir sözcüğün parçası olabilir, herhangi bir karakterle eşleşir. \p{L&}
alfabetik komut (vb Latince, Yunanca, Kiril, Thai,) yalnızca harfler maçlar
... Eğer bir karakter kümesi issue yanlış şekilde mücadele gibi geliyor, ama yanlış olabilir? Geçmişte beni tufaya gelmiş birkaç gotchas ..
Nedir kod elde etmek gerekiyor? Biz bir sonraki adıma Sorunuza geçmiş bakabilirsiniz belki, daha iyi bir çözüm orada var.