Normal ifadedeki tek bir konumla eşleşecek karakterlerin bir listesini belirtmek için karakter sınıflarını kullanırsınız. Karakter sınıflarını köşeli ayraçlarla ( [ ve ] ) tanımlarsınız. Örneğin, aşağıdaki normal ifade, bag, beg, big, bog veya bug ile eşleşen bir karakter sınıfını tanımlar:
/b[aeiou]g/
Karakter sınıflarında kaçış sıraları
Normalde bir normal ifadede özel anlamlar içeren meta karakterlerin ve meta sıraların çoğu, karakter sınıfında bu aynı anlamları içermez. Örneğin, normal bir ifadede, yineleme için yıldız işareti kullanılır, ancak karakter sınıfında yıldız görüntülendiğinde bu kural geçerli değildir. Aşağıdaki karakter sınıfı, listelenen diğer karakterlerle birlikte harfi harfine yıldız ile eşleşir:
/[abc*123]/
Ancak, aşağıdaki tabloda listelenen üç karakter, karakter sınıflarında da özel anlamlarını içerecek şekilde meta karakterler olarak çalışır:
Meta karakter
|
Karakter sınıflarındaki anlamı
|
]
|
Karakter sınıfının sonunu tanımlar.
|
-
|
Karakter aralığını tanımlar. (İlerleyen bölümlerdeki "Karakter sınıflarında karakter aralıkları” konusuna bakın.)
|
\
|
Meta sıraları tanımlar ve meta karakterlerin özel anlamını geri alır.
|
Bu karakterlerden herhangi birinin değişmez karakter olarak (özel meta karakter anlamı olmadan) tanınması için, karakterin önüne ters eğik çizgi kaçış karakterini getirmeniz gerekir. Örneğin, aşağıdaki normal ifade, dört sembolden herhangi biriyle ($, \, ] veya -) eşleşen bir karakter sınıfını içerir:
/[$\\\]\-]/
Özel anlamlarını koruyan meta karakterlere ek olarak, aşağıdaki meta sıralar da karakter sınıfları içinde meta sıralar olarak çalışır:
Meta sıra
|
Karakter sınıflarındaki anlamı
|
\n
|
Yeni satır karakteriyle eşleşir.
|
\r
|
Döndürme karakteriyle eşleşir.
|
\t
|
Sekme karakteriyle eşleşir.
|
\unnnn
|
Unicode kod punto değeri (nnnn onaltılık sayısıyla tanımlandığı şekilde) belirtilmiş karakterle eşleşir.
|
\\xnn
|
ASCII değeri (nn onaltılık sayısıyla tanımlandığı şekilde) belirtilmiş karakterle eşleşir.
|
Diğer normal ifade meta sıraları ve meta karakterleri, karakter sınıfı içinde normal karakterler olarak değerlendirilir.
Karakter sınıflarında karakter aralıkları
A-Z, a-z veya 0-9 gibi bir karakter aralığı belirtmek için kısa çizgi kullanın. Bu karakterlerin, karakter kümesi içinde geçerli bir aralık oluşturması gerekir. Örneğin, aşağıdaki karakter sınıfı, a-z aralığındaki karakterlerden herhangi biriyle veya bir rakamla eşleşir:
/[a-z0-9]/
ASCII değerine göre bir aralık belirtmek için, \\xnn ASCII karakter kodunu da kullanabilirsiniz. Örneğin, aşağıdaki karakter sınıfı, genişletilmiş ASCII karakterleri kümesinden herhangi bir karakterle (örn. é ve ê ) eşleşir:
\\x
Değilleme uygulanmış karakter sınıfları
Karakter sınıfının başında bir başlık (^) karakteri kullandığınızda bu, sınıfa değilleme işlemi uygular—listelenmeyen tüm karakterler bir eşleşme olarak değerlendirilir. Aşağıdaki karakter sınıfı, küçük harfler (az–) veya rakamlar dışında herhangi bir karakterle eşleşir:
/[^a-z0-9]/
Değillemeyi belirtmek için karakter sınıfının başına şapka (^) karakterini yazmanız gerekir. Aksi takdirde, yalnızca karakter sınıfındaki karakterlere şapka karakteri eklemiş olursunuz. Örneğin, aşağıdaki karakter sınıfı, şapka da dahil olmak üzere, sembol karakterlerinden herhangi biriyle eşleşir:
/[!.,#+*%$&^]/