Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Ungkapan Biasa PHP: Cara mengekstrak subrentetan dengan penghujung tertentu daripada rentetan

Ungkapan Biasa PHP: Cara mengekstrak subrentetan dengan penghujung tertentu daripada rentetan

王林
王林asal
2023-06-22 08:37:361067semak imbas

Dalam banyak program PHP, kita perlu mengekstrak subrentetan dengan penghujung tertentu daripada rentetan, seperti mengekstrak semua nama fail yang berakhir dengan ".txt" daripada set nama fail. Pada masa ini, menggunakan ungkapan biasa boleh membantu kami melaksanakan fungsi ini dengan cepat dan berkesan.

PHP menyediakan banyak fungsi ekspresi biasa, yang paling biasa digunakan ialah preg_match, preg_match_all dan preg_replace. Dalam artikel ini, kami akan memperkenalkan cara menggunakan fungsi preg_match dan preg_match_all untuk mengekstrak subrentetan dengan pengakhiran tertentu daripada rentetan.

Pertama, kita perlu menentukan ungkapan biasa yang digunakan untuk memadankan subrentetan penghujung tertentu. Dalam contoh ini, kami ingin memadankan semua subrentetan yang berakhir dengan ".txt", jadi ungkapan biasa yang sepadan hendaklah "/.txt$/" . Ungkapan biasa terdiri daripada bahagian berikut:

  • "/": teg permulaan bagi ungkapan biasa.
  • ".": Padan dengan aksara "." Memandangkan "."
  • "txt": Memadankan rentetan "txt".
  • "$": Padan dengan hujung rentetan.
  • "/": Teg akhir ungkapan biasa.

Seterusnya, mari lihat cara menggunakan fungsi preg_match untuk memadankan subrentetan pertama yang berakhir dengan ".txt" daripada rentetan:

$string = "file1.txt file2.php file3.txt file4.html";
$pattern = "/.txt$/";
if (preg_match($pattern, $string, $match)) {
    echo "找到匹配的子字符串:".$match[0];
} else {
    echo "没有找到匹配的子字符串!";
}

Dalam contoh ini, Kami mula-mula mentakrifkan rentetan $string yang mengandungi berbilang nama fail. Kemudian, kami mentakrifkan ungkapan biasa $pattern untuk memadankan subrentetan yang berakhir dengan ".txt" dan memanggil fungsi preg_match. Parameter pertama fungsi ialah ungkapan biasa, parameter kedua ialah rentetan yang akan dipadankan, dan parameter ketiga ialah hasil yang dipadankan. Jika tiada hasil ditemui, fungsi mengembalikan palsu.

Akhir sekali, kami menentukan sama ada subrentetan penamat tertentu dipadankan dengan menentukan sama ada terdapat unsur dalam tatasusunan $match. Jika ada, subrentetan adalah output. Jika tidak, "Tiada subrentetan sepadan ditemui!"

Seterusnya, mari lihat cara menggunakan fungsi preg_match_all untuk memadankan semua subrentetan yang berakhir dengan ".txt" daripada rentetan:

$string = "file1.txt file2.php file3.txt file4.html";
$pattern = "/.txt$/";
if (preg_match_all($pattern, $string, $matches)) {
    echo "找到 ".count($matches[0])." 个匹配的子字符串:<br>";
    foreach ($matches[0] as $match) {
        echo $match."<br>";
    }
} else {
    echo "没有找到匹配的子字符串!";
}

Dalam contoh ini, kita juga menggunakan $ Dua rentetan pembolehubah dan $pattern menentukan rentetan dan ungkapan biasa yang perlu dipadankan. Kemudian, kami memanggil fungsi preg_match_all Tidak seperti fungsi preg_match, fungsi ini boleh memadankan semua subrentetan yang layak dalam rentetan dan mengembalikan hasil dalam tatasusunan.

Apabila gelung untuk mengeluarkan hasil padanan, kami menggunakan gelung foreach untuk melintasi elemen pertama dalam tatasusunan $matches. Memandangkan elemen ini juga merupakan tatasusunan, kami menggunakan pembolehubah $match untuk menyimpan subrentetan yang dilalui dan mengeluarkannya.

Jika tiada hasil yang sepadan ditemui, "Tiada subrentetan sepadan ditemui juga!"

Untuk meringkaskan, menggunakan ungkapan biasa boleh membantu kami mengekstrak subrentetan penghujung tertentu dalam rentetan dengan cepat dan cekap. Dalam aplikasi praktikal, kita boleh mentakrifkan ungkapan biasa yang berbeza mengikut keperluan sebenar dan secara fleksibel menerapkannya dalam kombinasi dengan fungsi seperti preg_match, preg_match_all dan preg_replace.

Atas ialah kandungan terperinci Ungkapan Biasa PHP: Cara mengekstrak subrentetan dengan penghujung tertentu daripada rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn