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.
|
\u
nnnn
|
Unicode kod punto değeri (
nnnn
onaltılık sayısıyla tanımlandığı şekilde) belirtilmiş karakterle eşleşir.
|
\\x
nn
|
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,
\\x
nn
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:
/[!.,#+*%$&^]/