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<?php
  $str = 'aaa bbb abb';
  $res = preg_replace('#a{3}|b{3}#', '!', $str);
?>

Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:

php'! ! abb'

Contoh

Dalam contoh ini pola pencariannya adalah: tiga huruf 'a' atau 1 huruf atau lebih 'b':

php<?php
  $str = 'aaa bbb bbbb bbbbb axx';
  $res = preg_replace('#a{3}|b+#', '!', $str);
?>

Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:

php'! ! ! ! axx'

Contoh

Dalam contoh ini pola pencariannya adalah: satu atau lebih huruf atau tiga digit:

php<?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:

php'! ! ! 1 12 !'

Contoh

Garis vertikal dapat membagi regex bukan hanya menjadi dua bagian, tetapi menjadi beberapa bagian:

php<?php
  $str = 'aaa bbb ccc ddd';
  $res = preg_replace('#a+|b+|c+#', '!', $str);
?>

Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:

php'! ! ! 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<?php
  $str = 'axx bxx bbxx exx';
  $res = preg_replace('#(a|b+)xx#', '!', $str);
?>

Hasilnya, yang akan tersimpan dalam variabel adalah sebagai berikut:

php'! ! ! exx'

Tugas Praktis

Задание 1

Diberikan string:

php<?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.

Задание 2

Diberikan string:

php<?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.