Karakter Tekrarlama Operatörleri

Bir karakterin belirli sayıda tekrarlandığını belirtmek istediğimiz durumlar olur. Eğer tam tekrar sayısını biliyorsak, onu birkaç kez yazabiliriz - #aaaa#. Peki şöyle bir şey söylemek istersek: bir veya daha fazla kez tekrarla?

Bunun için (nicelik belirleyiciler) tekrarlama operatörleri vardır: artı + (bir veya daha fazla kez), yıldız * (sıfır veya daha fazla kez) ve soru işareti ? (sıfır veya bir kez). Bu operatörler kendilerinden önce gelen karaktere etki eder.

Bu operatörlerin çalışmasını örneklerle görelim.

Örnek

Şu kalıba göre tüm alt dizileri bulalım: harf 'x', harf 'a' bir veya daha fazla kez, harf 'x':

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

Sonuç olarak değişkene şu yazılacaktır:

php'xx ! ! ! xbx'

Örnek

Şu kalıba göre tüm alt dizileri bulalım: harf 'x', harf 'a' sıfır veya daha fazla kez, harf 'x':

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

Sonuç olarak değişkene şu yazılacaktır:

php'! ! ! ! xbx'

Örnek

Şu kalıba göre tüm alt dizileri bulalım: harf 'x', harf 'a' sıfır veya bir kez, harf 'x':

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

Sonuç olarak değişkene şu yazılacaktır:

php'! ! xaax xbx'

Pratik Görevler

Задание 1

Şu dizi verilsin:

php<?php
  $str = 'aa aba abba abbba abca abea';
?>

Şu kalıba göre dizileri bulacak bir düzenli ifade yazın: harf 'a', harf 'b' bir veya daha fazla kez, harf 'a'.

Задание 2

Şu dizi verilsin:

php<?php
  $str = 'aa aba abba abbba abca abea';
?>

Şu kalıba göre dizileri bulacak bir düzenli ifade yazın: harf 'a', harf 'b' sıfır veya daha fazla kez, harf 'a'.

Задание 3

Şu dizi verilsin:

php<?php
  $str = 'aa aba abba abbba abca abea';
?>

Şu kalıba göre dizileri bulacak bir düzenli ifade yazın: harf 'a', harf 'b' bir kez veya hiç, harf 'a'.

Задание 4

Şu dizi verilsin:

php<?php
  $str = 'aa aba abba abbba abca abea';
?>

'abca' ve 'abea''yı yakalamadan, 'aa', 'aba', 'abba', 'abbba' dizilerini bulacak bir düzenli ifade yazın.