Tarayıcınız güncel değil

Bu siteyi görüntülemek için tarayıcınızın veya cihazınızın işletim sisteminin güncellenmesi gerekiyor.

Your browser is out of date. Please update iOS or your browser to view this site.

Əsas məzmuna keç
Gizke.com
Bloq

Regex Test Aləti

Cihazınızda işləyir. Heç nə göndərilmir.

Bayraqlar

Ümumi şablonlar

Test mətni

Uyğunluq tapılmadı

İzahat

Hər hissənin nə etdiyini görmək üçün yuxarıda bir şablon yazın

JavaScript requlyar ifadələrini canlı uyğunluq vurğulaması ilə tamamilə brauzerinizdə test edin, izah edin və sazlayın.

Requlyar ifadə (regex) mətni uyğunlaşdırmaq, tapmaq və ya əvəz etmək üçün istifadə olunan bir şablondur - kod redaktorlarında tap-və-əvəz et, forma doğrulaması və log təhlilinin arxasındakı eyni əsas alətdir. Bu test aləti JavaScript-in daxili regex mühərrikini birbaşa brauzerinizdə işə salır: bir şablon və test mətni yazın, o da hər uyğunluğu vurğulayır, tutma qruplarını ayırır, əvəzetmələri əvvəlcədən göstərir və şablonun hər hissəsinin nə etdiyini sadə dildə izah edir. Yazdığınız heç nə heç vaxt heç yerə yüklənmir.

Tez-tez verilən suallar

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.
Developerlər üçün: bu səhifəni URL-də `q` (nümunə) və `text` (test mətni) parametrləri ilə açın - məs. gizke.com/regex?q=\d+&text=There are 42 apples - və hər ikisi avtomatik olaraq əvvəlcədən doldurulacaq. Əksər ziyarətçilərin buna ehtiyacı olmayacaq; bu, hazır bir nümunəyə birbaşa keçid vermək üçündür.

Bu aləti paylaşın

BloqHaqqımızdaƏlaqəİstifadə ŞərtləriMəxfilik Siyasəti