⊗jsSpREGL 101 of 294 menu

JavaScript'te Düzenli İfadelerde Açgözlülüğü Sınırlama

Düzenli ifadeler varsayılan olarak açgözlüdür. Bu, mümkün olan maksimum karakteri yakaladıkları anlamına gelir. Bir örnekle inceleyelim. Diyelim ki şöyle bir dizgemiz var:

let str = 'aeeex zzz x kkk';

Diyelim ki bu dizgede, aşağıdaki kalıbı kullanarak 'aeeex' alt dizisini bulmak istiyoruz: 'a' harfi, ardından herhangi bir bir veya daha fazla karakter, ardından 'x' harfi.

let res = str.replace(/a.+x/g, '!');

Sonuç olarak değişkene '! zzz x kkk' dizesinin yazılmasını bekliyoruz. Ancak, öyle olmuyor - değişkene '! kkk' dizesi giriyor.

Bunun nedeni, düzenli ifademizin 'a' harfinden 'x' harfine kadar olan tüm karakterleri aramasıdır. Ancak dizgemizde iki tane 'x' harfi var! Açgözlülük nedeniyle, düzenli ifade en sondaki x'e kadar arar ve böylece beklediğimizden farklı bir şeyi yakalar.

Elbette, çoğu zaman bu davranış tam da ihtiyacımız olan şeydir. Ancak özellikle bu durumda, açgözlülüğü iptal etmek ve düzenli ifadeye ilk x'i bulmasını söylemek istiyoruz.

Açgözlülüğü sınırlamak için, tekrarlama operatöründen sonra bir soru işareti konulmalıdır:

let res = str.replace(/a.+?x/g, '!');

Açgözlülük tüm tekrarlama operatörleri için sınırlandırılabilir: *, ?, ve {} - şu şekilde: *?, ?? ve {}?.

Bir dize verildi:

let str = 'aba accca azzza wwwwa';

Kenarlarında 'a' harfleri bulunan tüm dizgeleri bulan ve her birini '!' ile değiştiren bir düzenli ifade yazın. 'a' harfleri arasında ('a' hariç) herhangi bir karakter olabilir.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet