Poket dalam Carian dengan Ungkapan Biasa di PHP
Katakan kita mempunyai beberapa rentetan yang mengandungi domain:
<?php
$str = 'eee site.ru bbb';
?>
Mari cari domain ini dan bahagikannya kepada bahagian: asingkan nama domain daripada zonnya. Untuk ini, kita akan menggunakan poket khas ungkapan biasa.
Poket ialah elemen array, di mana anda boleh meletakkan bahagian yang ditemui oleh regex. Dalam kes kami, ke dalam poket pertama kita boleh meletakkan nama domain, dan ke dalam yang kedua - zonnya.
Mari lakukan ini. Mula-mula, tulis regex, yang mencari domain dalam rentetan:
<?php
$reg = '#[a-z0-9_-]+\.[a-z]{2,}#';
?>
Sekarang dalam regex kami, mari tandakan bahagian mana yang harus masuk ke dalam poket mana. Ini dilakukan menggunakan kurungan bulat. Mari asingkan bahagian regex yang mencari nama domain, dan bahagian yang mencari zon domain dengannya:
<?php
$reg = '#([a-z0-9_-]+)\.([a-z]{2,})#';
?>
Sekarang dalam fungsi preg_match
sebagai parameter ketiga, nyatakan pembolehubah (sebarang nama):
<?php
preg_match($reg, $str, $res);
?>
Array dengan poket yang ditemui akan dimasukkan ke dalam pembolehubah yang dinyatakan. Pada masa yang sama, elemen sifar array akan mengandungi rentetan yang ditemui, elemen pertama - poket pertama, elemen kedua - poket kedua dan seterusnya:
<?php
preg_match($reg, $str, $res);
var_dump($res); // akan output ['site.ru', 'site', 'ru']
?>
Diberi rentetan dengan tarikh:
<?php
$str = '2025-12-31';
?>
Letakkan tahun, bulan dan hari dalam poket berasingan.
Diberi rentetan dengan nama fail:
<?php
$str = 'index.html';
?>
Letakkan nama fail dan sambungannya dalam poket berasingan.