JavaScript Düzenli İfadelerinde Köşeli Parantez İçinde Tire
Tire de [ ] içinde özel bir karakterdir
(ancak dışında değildir). Tireyi bir karakter olarak kullanmak istiyorsanız, onu bir grup ayırıcısı olarak algılanmayacağı yere koyun.
Bu neden önemli: Farkında olmadan bir karakter grubu oluşturabilirsiniz. Örneğin,
'[:-@]' - siz iki nokta üst üste, tire ve @ işaretini seçtiğinizi düşünürsünüz, ancak
aslında : ve @ arasındaki karakter grubu oluşur. Bu gruba şu karakterler dahildir:
? < = > : ;
Bunlar nereden geliyor? ASCII tablosundan - iki nokta üst üstenin numarası, @ işaretininkinden küçüktür - ve bir grup oluşur. Yani tüm gruplar ASCII tablosuna göre oluşturulur (isterseniz bundan faydalanabilirsiniz).
Bununla nasıl başa çıkılır: Tire karakterini
kesinlikle bir grup sembolü olarak algılanmayacağı
bir yere, örneğin başında veya sonunda koyun
(yani ['den sonra veya ]'den önce).
Tireyi kaçırarak da (escape) kullanabilirsiniz - böylece
konumu ne olursa olsun kendisini temsil eder.
Örneğin, [:\-@] yazın - ve artık bir grup olmaz, bunun yerine
üç karakter olur - iki nokta üst üste, tire ve @ işareti
@.
Örnek
Aşağıdaki örnekte arama kalıbı şudur:
1 rakamı, ardından 'a'
ile 'z' arasında bir harf, ardından 2 rakamı:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a-z]2/g, '!');
Sonuç olarak değişkene şu yazılacaktır:
'! 1-2 ! !'
Örnek
Şimdi tireyi kaçıralım (escape edelim). Sonuçta
arama kalıbı şudur: 1 rakamı, ardından
'a' harfi, veya tire, veya 'z' harfi,
ardından 2 rakamı:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[a\-z]2/g, '!');
Sonuç olarak değişkene şu yazılacaktır:
'! ! 1c2 !'
Örnek
Tireyi kaçırmadan (escape etmeden) sadece yerini değiştirebilirsiniz:
let str = '1a2 1-2 1c2 1z2';
let res = str.replace(/1[az-]2/g, '!');
Sonuç olarak değişkene şu yazılacaktır:
'! ! 1c2 !'
Örnek
Aşağıdaki örnekte arama kalıbı şudur:
ilk karakter - küçük harfler veya
tire '-', ardından iki tane 'x' harfi:
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-z-]xx/g, '!');
Sonuç olarak değişkene şu yazılacaktır:
'! Axx ! @xx'
Örnek
Aşağıdaki örnekte arama kalıbı şudur:
ilk karakter - küçük veya büyük
harfler veya tire '-', ardından iki tane
'x' harfi:
let str = 'axx Axx -xx @xx';
let res = str.replace(/[a-zA-Z-]xx/g, '!');
Sonuç olarak değişkene şu yazılacaktır:
'! ! ! @xx'
Örnek
Tireyi iki grubun arasına koyabilirsiniz - orada kesinlikle başka bir grup oluşturmayacaktır:
let str = 'axx 9xx -xx @xx';
let res = str.replace(/[a-z-0-9]xx/g, '!');
Sonuç olarak değişkene şu yazılacaktır:
'! ! ! @xx'
Pratik Görevler
Bir string veriliyor:
let str = 'xaz xBz xcz x-z x@z';
Aşağıdaki kalıba uyan tüm stringleri bulun:
'x' harfi, büyük veya küçük
harf veya tire, 'z' harfi.
Bir string veriliyor:
let str = 'xaz x$z x-z xcz x+z x%z x*z';
Aşağıdaki kalıba uyan tüm stringleri bulun:
'x' harfi, ardından $ işareti, veya
tire veya artı işareti, ardından 'z' harfi.