Bu alət hansı regex ləhcəsindən istifadə edir?+−
JavaScript-in daxili regex mühərrikindən (RegExp və String.prototype.match/replace-in arxasındakı mühərrik) istifadə edir, çünki burada hər şey serverdə deyil, brauzerinizdə müştəri tərəfində işləyir. PCRE-yə çox yaxındır, lakin bir neçə fərqi var - məsələn, lookbehind dəstəyi mühərrik versiyasından asılıdır və adlı qruplar (?<ad>...) sintaksisindən istifadə edir.
Şablonum niyə yalnız bir dəfə uyğun gəlir?+−
Standart olaraq, g (qlobal) bayrağı olmadan, regex ilk uyğunluqdan sonra dayanır - bu, JavaScript-də RegExp.exec() və String.match()-in faktiki davranışını əks etdirir. Test mətnindəki yalnız ilk uyğunluğu deyil, hər uyğunluğu tapmaq üçün yuxarıda g bayrağını aktivləşdirin.
(...) ilə (?:...) arasındakı fərq nədir?+−
Hər ikisi şablonun hissələrini birləşdirir, lakin yalnız (...) - tutma qrupu - uyğunlaşdırdığını yadda saxlayır ki, sonra ona istinad edə biləsiniz (əvəzetmədə $1, $2, ... kimi, və ya uyğunluğun qrup siyahısında). (?:...) tutmasız qrupdur: uyğunluğu saxlamadan qruplaşdırır və say göstəricilərini tətbiq edir; qruplaşdırma lazım olduqda, lakin tutulan mətnlə maraqlanmadığınız zaman faydalıdır.
Adlı qruplar və $<ad> əvəzetmələri necə işləyir?+−
Yalnız nömrə ilə deyil, bir ad altında qrup tutmaq üçün (...) əvəzinə (?<ad>...) yazın. Əvəzetmə rejimində, əvəzetmə mətnində ona $<ad> kimi istinad edin - məsələn, (?<il>\d{4})-(?<ay>\d{2}) şablonu $<ay>/$<il> ilə əvəz edildikdə qrup nömrələrini yadda saxlamağa ehtiyac olmadan tarixi yenidən düzəldir.
+ və +? kimi acgöz (greedy) və tənbəl (lazy) kəmiyyət göstəricisi arasındakı fərq nədir?+−
Acgöz kəmiyyət göstəricisi (+, *, {2,4}) mümkün qədər çox mətnə uyğun gəlir, sonra isə yalnız qalıq nümunənin uyğunlaşması üçün lazım olduqda geri çəkilir. Eyni simvoldan sonra ? gələn tənbəl kəmiyyət göstəricisi isə əksinə, mümkün qədər az mətnə uyğun gəlir və yalnız zərurət olduqda bir simvol qədər genişlənir. Məsələn, <.+>, <a><b>-yə qarşı acgözcəsinə bütün <a><b>-ə uyğun gəlir, <.+?> isə tənbəlcəsinə yalnız <a>-ya uyğun gəlir.
Əgər lookahead və lookbehind heç bir simvolu istehlak etmirsə, əslində nəyi yoxlayır?+−
Onlar bir nümunənin cari mövqedən dərhal əvvəl və ya sonra görünüb-görünmədiyini, bunu uyğunluğun özünə daxil etmədən yoxlayır - beləliklə (?=...) və (?<=...) irəli/geri nəyinsə orada olmalı olduğunu yoxlayır, (?!...) və (?<!...) isə onun orada olmamalı olduğunu yoxlayır. Buna görə də bir ədədi yalnız ardınca 'px' gəldikdə uyğunlaşdırmaq üçün \d+(?=px) istifadə edə bilərsiniz, 'px' isə özü heç vaxt uyğunlaşan mətndə görünmür.