Perintah 'ATAU' dalam Ekspresi Reguler PHP
Dalam pelajaran ini kita akan membahas perintah
|, yang merupakan varian
ATAU yang lebih kuat dibandingkan dengan
perintah []. Perintah ini memungkinkan
kita untuk membagi regex menjadi beberapa bagian.
Dalam hal ini, yang dicari bisa cocok dengan satu
bagian regex, atau dengan bagian lainnya. Mari kita
lihat contoh-contohnya.
Contoh
Dalam contoh ini pola pencariannya adalah: tiga
huruf 'a' atau tiga huruf 'b':
<?php
$str = 'aaa bbb abb';
$res = preg_replace('#a{3}|b{3}#', '!', $str);
?>
Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:
'! ! abb'
Contoh
Dalam contoh ini pola pencariannya adalah: tiga
huruf 'a' atau 1 huruf atau lebih
'b':
<?php
$str = 'aaa bbb bbbb bbbbb axx';
$res = preg_replace('#a{3}|b+#', '!', $str);
?>
Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:
'! ! ! ! axx'
Contoh
Dalam contoh ini pola pencariannya adalah: satu atau lebih huruf atau tiga digit:
<?php
$str = 'a ab abc 1 12 123';
$res = preg_replace('#[a-z]+|\d{3}#', '!', $str);
?>
Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:
'! ! ! 1 12 !'
Contoh
Garis vertikal dapat membagi regex bukan hanya menjadi dua bagian, tetapi menjadi beberapa bagian:
<?php
$str = 'aaa bbb ccc ddd';
$res = preg_replace('#a+|b+|c+#', '!', $str);
?>
Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:
'! ! ! ddd'
Contoh
Jika garis vertikal berada di dalam tanda kurung,
maka 'ATAU' hanya bekerja di dalam
tanda kurung tersebut. Sebagai contoh, mari kita cari string
dengan pola berikut: di awal terdapat
'a', atau 'b' satu kali atau lebih,
diikuti oleh dua huruf 'x':
<?php
$str = 'axx bxx bbxx exx';
$res = preg_replace('#(a|b+)xx#', '!', $str);
?>
Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:
'! ! ! exx'
Tugas Praktis
Diberikan string:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Tuliskan regex yang akan menemukan string
dengan pola: di sisi kiri dan kanan terdapat huruf 'a',
dan di antaranya - huruf 'e' dalam jumlah berapa pun
atau huruf 'x' dalam jumlah berapa pun.
Diberikan string:
<?php
$str = 'aeeea aeea aea axa axxa axxxa';
?>
Tuliskan regex yang akan menemukan string
dengan pola: di sisi kiri dan kanan terdapat huruf 'a',
dan di antaranya - huruf 'e' dua kali
atau huruf 'x' dalam jumlah berapa pun.