วงเล็บปีกกาในนิพจน์ทั่วไปของ PHP

โอเปอเรเตอร์ +, *, ? นั้นดี อย่างไรก็ตาม มันไม่สามารถระบุจำนวนการซ้ำที่แน่นอนได้ ในกรณีนี้โอเปอเรเตอร์ {} จะมาช่วยคุณ

มันทำงานดังนี้: {5} - ซ้ำห้าครั้ง, {2,5} - ซ้ำ ตั้งแต่สองถึงห้าครั้ง (รวมทั้งสองค่า), {2,} - ซ้ำสองครั้งขึ้นไป

ตัวอย่าง

ในตัวอย่างนี้รูปแบบการค้นหามีลักษณะดังนี้: ตัวอักษร 'x', ตัวอักษร 'a' หนึ่ง หรือสองครั้ง, ตัวอักษร 'x':

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

ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:

php'xx ! ! xaaax'

ตัวอย่าง

ในตัวอย่างนี้รูปแบบการค้นหามีลักษณะดังนี้: ตัวอักษร 'x', ตัวอักษร 'a' สอง ครั้งขึ้นไป, ตัวอักษร 'x':

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

ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:

php'xx xax ! !'

ตัวอย่าง

ในตัวอย่างนี้รูปแบบการค้นหามีลักษณะดังนี้: ตัวอักษร 'x', ตัวอักษร 'a' สาม ครั้ง, ตัวอักษร 'x':

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

ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:

php'xx xax xaax !'

ตัวอย่าง

ในตัวอย่างนี้รูปแบบการค้นหามีลักษณะดังนี้: ตัวอักษร 'a' สิบครั้ง:

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

ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:

php'aaa ! aaa'

ตัวอย่าง

ในตัวอย่างนี้ผู้เขียนโค้ดต้องการรูปแบบนี้: ตัวอักษร 'x', ตัวอักษร 'a' สาม ครั้งหรือน้อยกว่า, ตัวอักษร 'x', แต่ น่าเสียดายที่รูปแบบนี้ - {,3} - ไม่ทำงาน จำเป็นต้องระบุให้ชัดเจน:

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

ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:

php'xx ! ! !'

ตัวอย่าง

ศูนย์ก็อนุญาตให้ใช้ได้:

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

ผลลัพธ์ที่ได้ในตัวแปรจะเป็นดังนี้:

php'! ! ! !'

โจทย์ปฏิบัติ

Задание 1

กำหนดสตริง:

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

เขียนนิพจน์ทั่วไปที่พบสตริง 'abba', 'abbba', 'abbbba' และเฉพาะพวกมันเท่านั้น

Задание 2

กำหนดสตริง:

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

เขียนนิพจน์ทั่วไปที่พบสตริง ประเภท 'aba' โดยที่ 'b' ปรากฏ น้อยกว่าสามครั้ง (รวม)

Задание 3

กำหนดสตริง:

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

เขียนนิพจน์ทั่วไปที่พบสตริง ประเภท 'aba' โดยที่ 'b' ปรากฏ มากกว่าสี่ครั้ง (รวม)