Skip to content

RegExp Tasdiqlar (Assertions) ​

Tasdiqlar — chegaralar (boundaries) va ko'rib chiqishlar (lookarounds) bilan moslikni tekshiradi:

  • Matn chegaralari va so'z chegaralari.
  • Ko'rib chiqishlar: Lookahead va Lookbehind.
js
// Matn boshiga moslik
const pattern = /^W3Schools/;

// Matn oxiriga moslik
const pattern2 = /W3Schools$/;

Tasdiqlar jadvali ​

SintaksisNomiTavsif
^Matn chegarasiMatn boshiga mos keladi.
$Matn chegarasiMatn oxiriga mos keladi.
\bSo'z chegarasiSo'z boshi yoki oxiriga mos keladi.
\BSo'z chegarasiSo'z boshi yoki oxiriga mos kelmaydigan joyga mos keladi.
(?=...)LookaheadKeyingi matnga mos keladi.
(?!...)Salbiy LookaheadKeyingi matnga mos kelmasa moslik beradi.
(?<=...)LookbehindOldingi matnga mos keladi.
(?<!...)Salbiy LookbehindOldingi matnga mos kelmasa moslik beradi.

^ metabelgisi ​

^ metabelgisi matnning boshiga mos keladi.

js
const pattern = /^W3Schools/;
let text = "W3Schools Tutorial";
let result = pattern.test(text); // true
js
const pattern = /^W3Schools/;
let text = "Hello W3Schools";
let result = pattern.test(text); // false

$ metabelgisi ​

$ metabelgisi matnning oxiriga mos keladi.

js
const pattern = /W3Schools$/;
let text = "Hello W3Schools";
let result = pattern.test(text); // true
js
const pattern = /W3Schools$/;
let text = "W3Schools tutorial";
let result = pattern.test(text); // false

\b metabelgisi (so'z chegarasi) ​

\b metabelgisi so'zning boshi yoki oxiriga mos keladi.

Misollar

So'z boshida "LO" belgilarini qidirish:

js
let text = "HELLO, LOOK AT YOU!";
let result = text.search(/\bLO/);

So'z oxirida "LO" belgilarini qidirish:

js
let text = "HELLO, LOOK AT YOU!";
let result = text.search(/LO\b/);

Lookahead x(?=y) ​

x(?=y) — "x" ga faqat "y" undan keyin kelsa mos keladi.

js
let text = "W3Schools Tutorials";
let pattern = /W3Schools(?= Tutorials)/;

let result = pattern.test(text); // true

Salbiy Lookahead x(?!y) ​

x(?!y) — "x" ga faqat "y" undan keyin kelmasa mos keladi.

js
let text = "W3Schools Tutorials";

let pattern = /W3Schools(?! Tutorials)/;
let result = pattern.test(text); // false

Tushuntirish:

  • W3Schools — so'zma-so'z moslik.
  • (?! Tutorials) — keyingi qism " Tutorials" emasligini tasdiqlaydi.
  • Agar text = "W3Schools Tutorials" bo'lsa, test false qaytaradi.
  • Agar text = "W3Schools Website" bo'lsa, test true qaytaradi.

Lookbehind (?<=y)x ​

(?<=y)x — "x" ga faqat "y" undan oldin kelsa mos keladi.

js
let text = "Hello W3Schools";
let pattern = /(?<=Hello )W3Schools/;

let result = pattern.test(text); // true

Salbiy Lookbehind (?<!y)x ​

(?<!y)x — "x" ga faqat "y" undan oldin kelmasa mos keladi.

js
let text = "Hello W3Schools";

let pattern = /(?<!Hello )W3Schools/;
let result = pattern.test(text); // false

Muntazam ifoda guruhlari ​

BelgiTavsif
(x)x ga mos keladi va uni saqlaydi.
(?<n>x)x ga mos keladi va uni n nomi bilan belgilaydi.
(?flag:x)Faqat x uchun flag(lar)ni yoqadi.
(?flag-flag:x)Faqat x uchun flag(lar)ni o'chiradi.

Saqlash guruhlari (x) ​

js
let text = "Haha, haha, haha.";
const pattern = /(haha)+/;

let result = text.match(pattern);

Tushuntirish:

  • (haha) — belgilar guruhini saqlaydi.
  • (haha)+ — guruhning nol yoki undan ko'p marta takrorlanishiga mos keladi.
  • text.match() — natijalar massivini qaytaradi.

Nomlangan saqlash guruhlari (?<n>) ​

js
const text = "Name: John Doe";

// Nomlangan saqlash guruhlarini ishlatish
const regex = /(?<firstName>\w+) (?<lastName>\w+)/;
const match = text.match(regex);

let fName = match.groups.firstName;
let lName = match.groups.lastName;

Tushuntirish:

  • (?<firstName>\w+) — so'zni saqlaydi va firstName deb nomlaydi.
  • (?<lastName>\w+) — so'zni saqlaydi va lastName deb nomlaydi.
  • text.match() — groups xususiyatiga ega massiv qaytaradi.
  • match.groups — {firstName: "John", lastName: "Doe"} obyektini qaytaradi.

Saqlash guruhlarini ishlatganda, String.match() va RegExp.exec() metodlari groups xususiyatiga ega moslik obyektini qaytaradi. Bu xususiyat guruhlarning nomlari va qiymatlarini saqlaydi.

Guruh modifikatorlari (?flag) ​

(?flag) sintaksisi — bu guruh modifikatori. U flaglarni shablonning bir qismiga qo'llash imkonini beradi.

js
let text = "W3Schools tutorials.";
const pattern = /(?i:W3Schools) tutorials/;

// true qaytaradi:
let result = pattern.test(text);
js
let text = "W3Schools Tutorials.";
const pattern = /(?i:W3Schools) tutorials/;

// false qaytaradi (tutorials katta harf bilan):
let result = pattern.test(text);

Muntazam ifoda metodlari ​

String Metodlari ​

MetodTavsif
match(regex)Natijalar massivini qaytaradi.
matchAll(regex)Natijalar iteratorini qaytaradi.
replace(regex)Yangi satr qaytaradi.
replaceAll(regex)Yangi satr qaytaradi.
search(regex)Birinchi moslik indeksini qaytaradi.
split(regex)Natijalar massivini qaytaradi.

RegExp Metodlari ​

MetodTavsif
regex.exec()Natijalar iteratorini qaytaradi.
regex.test()true yoki false qaytaradi.