Ungkapan Biasa PHP: Cara mengekstrak subrentetan sebelum dan selepas aksara tertentu daripada rentetan

PHPz
Lepaskan: 2023-06-23 09:10:02
asal
2163 orang telah melayarinya

Ungkapan biasa ialah alat pemprosesan teks yang berkuasa yang boleh membantu kami mengekstrak kandungan yang kami perlukan daripada sekumpulan teks. Menggunakan ungkapan biasa dalam PHP juga sangat mudah Artikel ini akan memperkenalkan cara mengekstrak subrentetan sebelum dan selepas aksara tertentu daripada rentetan.

  1. Gunakan fungsi preg_match

Dalam PHP, sangat mudah untuk menggunakan fungsi preg_match untuk mengekstrak apa yang kita perlukan daripada rentetan. Parameter pertama fungsi ini ialah ungkapan biasa, parameter kedua ialah rentetan yang akan dicari, dan parameter ketiga ialah tatasusunan yang boleh digunakan untuk menyimpan hasil yang dipadankan.

Sebagai contoh, jika kita ingin mengeluarkan subrentetan "Hello" daripada rentetan "Hello world", kita boleh menggunakan kod berikut:

$pattern = '/w+/';
$str = 'Hello world';
preg_match($pattern, $str, $matches);
echo $matches[0];  // 输出 "Hello"
Salin selepas log masuk

Dalam kod di atas, kami menggunakan mentakrifkan a ungkapan biasa w+, yang sepadan dengan satu atau lebih huruf, nombor atau garis bawah. Oleh itu, fungsi preg_match boleh memadankan subrentetan "Hello" dan menyimpannya dalam elemen pertama tatasusunan $matches.

Begitu juga, jika kita ingin mengeluarkan subrentetan "budak" daripada rentetan "Saya seorang budak", kita boleh menggunakan kod berikut:

$pattern = '/w+/';
$str = 'I am a boy';
preg_match($pattern, $str, $matches);
echo $matches[2];  // 输出 "boy"
Salin selepas log masuk

Dalam kod di atas, kami menggunakan ungkapan biasa w+, yang bermaksud memadankan perkataan. Memandangkan kita ingin memadankan perkataan ketiga, tatasusunan $matches menyimpan padanan ketiga, iaitu "budak".

  1. Gunakan fungsi preg_match_all

Jika anda ingin mengekstrak berbilang subrentetan daripada rentetan, anda boleh menggunakan fungsi preg_match_all. Fungsi ini serupa dengan fungsi preg_match, tetapi ia sepadan dengan semua subrentetan yang sepadan dan menyimpannya dalam tatasusunan $matches.

Sebagai contoh, jika kita ingin mengeluarkan semua nama haiwan daripada rentetan "Saya ada kucing dan anjing", kita boleh menggunakan kod berikut:

$pattern = '/[a-z]+/';
$str = 'I have a cat and a dog';
preg_match_all($pattern, $str, $matches);
print_r($matches[0]);  // 输出 Array("cat", "and", "dog")
Salin selepas log masuk

Dalam kod di atas, Kami menggunakan ungkapan biasa [a-z]+, yang sepadan dengan perkataan yang bermula dengan huruf dan berakhir dengan huruf. Memandangkan semua subrentetan yang sepadan perlu dipadankan, tatasusunan $matches menyimpan semua subrentetan yang sepadan.

  1. Gunakan fungsi preg_replace

Selain mengekstrak subrentetan daripada rentetan, kita juga boleh menggunakan fungsi preg_replace untuk menggantikan subrentetan tertentu dalam rentetan dengan rentetan lain. Parameter pertama fungsi ini ialah ungkapan biasa yang akan diganti, parameter kedua ialah rentetan yang diganti, parameter ketiga ialah rentetan yang akan diproses, dan parameter keempat ialah bilangan penggantian (boleh diabaikan, lalai ialah -1 , yang menggantikan semua perlawanan).

Sebagai contoh, jika kita ingin menggantikan "kucing" dengan "anjing" dalam rentetan "Saya suka kucing, tetapi saya benci anjing", kita boleh menggunakan kod berikut:

$pattern = '/cats/';
$replacement = 'dogs';
$str = 'I love cats, but I hate dogs';
echo preg_replace($pattern, $replacement, $str);  // 输出 "I love dogs, but I hate dogs"
Salin selepas log masuk

Di atas Dalam kod tersebut, kami menggunakan ungkapan biasa "kucing" untuk memadankan subrentetan yang akan diganti, menggantikannya dengan "anjing".

Ringkasnya, ungkapan biasa boleh digunakan untuk mengekstrak subrentetan dengan mudah sebelum dan selepas aksara tertentu daripada rentetan Fungsi ini boleh dicapai dengan mudah dalam PHP menggunakan fungsi preg_match, preg_match_all dan preg_replace.

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

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan