PHP Regular Ifodalarida Figurali Qavslar

+, *, ? operatorlari yaxshi, ammo, ular yordamida takrorlanishlarning aniq sonini ko‘rsatib bo‘lmaydi. Bu holda {} operatori yordam beradi.

U quyidagicha ishlaydi: {5} - besh marta takrorlanadi, {2,5} - ikki beshgacha (ikkalasi ham o‘z ichiga olgan holda), {2,} - ikki yoki undan ortiq marta takrorlanadi.

Misol

Ushbu misolda qidirsh shabloni quyidagicha: 'x' harfi, 'a' harfi bir yoki ikki marta, 'x' harfi:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,2}x#', '!', $str);
?>

Natijada o‘zgaruvchiga quyidagi yoziladi:

php'xx ! ! xaaax'

Misol

Ushbu misolda qidirsh shabloni quyidagicha: 'x' harfi, 'a' harfi ikki marta va undan ko‘p, 'x' harfi:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{2,}x#', '!', $str);
?>

Natijada o‘zgaruvchiga quyidagi yoziladi:

php'xx xax ! !'

Misol

Ushbu misolda qidirsh shabloni quyidagicha: 'x' harfi, 'a' harfi uch marta, 'x' harfi:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{3}x#', '!', $str);
?>

Natijada o‘zgaruvchiga quyidagi yoziladi:

php'xx xax xaax !'

Misol

Ushbu misolda qidirsh shabloni quyidagicha: 'a' harfi o‘n marta:

php<?php
  $str = 'aaa aaaaaaaaaa aaa';
  $res = preg_replace('#a{10}#', '!', $str);
?>

Natijada o‘zgaruvchiga quyidagi yoziladi:

php'aaa ! aaa'

Misol

Ushbu misolda kod muallifi shunday shablon xohladi: 'x' harfi, 'a' harfi uch marta va undan kam, 'x' harfi, lekin, afsuski, bunday - {,3} - ishlamaydi. Aniq ko‘rsatish kerak:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{1,3}x#', '!', $str);
?>

Natijada o‘zgaruvchiga quyidagi yoziladi:

php'xx ! ! !'

Misol

Nol ham ruxsat etiladi:

php<?php
  $str = 'xx xax xaax xaaax';
  $res = preg_replace('#xa{0,3}x#', '!', $str);
?>

Natijada o‘zgaruvchiga quyidagi yoziladi:

php'! ! ! !'

Amaliy Vazifalar

Задание 1

Berilgan satr:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

'abba', 'abbba', 'abbbba' va faqat ularni topadigan regular ifodani yozing.

Задание 2

Berilgan satr:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

'aba' ko‘rinishidagi satrlarni topadigan regular ifodani yozing, unda 'b' uch martadan kam (o‘z ichiga olgan holda) uchraydi.

Задание 3

Berilgan satr:

php<?php
  $str = 'aa aba abba abbba abbbba abbbbba';
?>

'aba' ko‘rinishidagi satrlarni topadigan regular ifodani yozing, unda 'b' to‘rt martadan ko‘p (o‘z ichiga olgan holda) uchraydi.