Pengendali Pengulangan Aksara dalam Ungkapan Biasa
Terdapat situasi di mana kita ingin menunjukkan,
bahawa sesuatu aksara diulang sebanyak bilangan kali
yang tertentu. Jika kita tahu bilangan ulangan yang tepat,
kita boleh menulisnya beberapa kali
- #aaaa#. Tetapi apa yang perlu dilakukan jika kita ingin
menyatakan seperti ini: ulang satu kali atau
lebih?
Untuk tujuan ini, terdapat pengendali (kuantifier)
pengulangan: tanda tambah + (satu kali atau lebih),
tanda bintang * (sifar kali atau lebih) dan
tanda soal ? (sifar atau satu kali).
Pengendali-pengendali ini bertindak ke atas aksara
yang berada di hadapannya.
Mari kita lihat cara pengendali ini berfungsi melalui contoh-contoh.
Contoh
Cari semua subrentetan mengikut corak aksara
'x', aksara 'a' satu kali atau lebih,
aksara 'x':
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa+x#', '!', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'xx ! ! ! xbx'
Contoh
Cari semua subrentetan mengikut corak aksara
'x', aksara 'a' sifar kali atau lebih,
aksara 'x':
<?php
$str = 'xx xax xaax xaaax xbx';
$res = preg_replace('#xa*x#', '!', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'! ! ! ! xbx'
Contoh
Cari semua subrentetan mengikut corak aksara
'x', aksara 'a' sifar atau satu
kali, aksara 'x':
<?php
$str = 'xx xax xaax xbx';
$res = preg_replace('#xa?x#', '!', $str);
?>
Hasilnya, yang berikut akan disimpan ke dalam pembolehubah:
'! ! xaax xbx'
Masalah Praktikal
Diberi rentetan:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Tulis ungkapan biasa yang akan mencari rentetan
mengikut corak: aksara 'a', aksara 'b'
satu kali atau lebih, aksara 'a'.
Diberi rentetan:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Tulis ungkapan biasa yang akan mencari rentetan
mengikut corak: aksara 'a', aksara 'b'
sifar kali atau lebih, aksara 'a'.
Diberi rentetan:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Tulis ungkapan biasa yang akan mencari rentetan
mengikut corak: aksara 'a', aksara 'b'
satu kali atau tiada, aksara 'a'.
Diberi rentetan:
<?php
$str = 'aa aba abba abbba abca abea';
?>
Tulis ungkapan biasa yang akan mencari rentetan
'aa', 'aba', 'abba',
'abbba', tanpa mengambil 'abca'
dan 'abea'.