Ungkapan biasa ialah alat padanan teks yang berkuasa yang boleh mencari dan mengekstrak subrentetan tertentu dalam rentetan. Dalam pengaturcaraan PHP, kita biasanya perlu mengekstrak data sebelum dan selepas berbilang aksara tertentu daripada rentetan Dalam kes ini, kita boleh menggunakan ungkapan biasa untuk mencapai ini.
Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa PHP untuk mengekstrak subrentetan sebelum dan selepas berbilang aksara tertentu daripada rentetan. Kami akan menggunakan fungsi preg_match_all dan ungkapan biasa untuk mencapai fungsi ini.
Dalam PHP, kita boleh menggunakan fungsi preg_match_all untuk padanan ungkapan biasa. Prototaip fungsi ini adalah seperti berikut:
preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] ) : int
Antaranya, $pattern ialah corak ungkapan biasa, $subjek ialah rentetan yang hendak dipadankan, $match ialah hasil padanan, $flags ialah parameter pilihan, menunjukkan corak padanan, Lalai ialah PREG_PATTERN_ORDER, $offset mewakili kedudukan dalam rentetan untuk mula mencari.
Sebelum menggunakan fungsi preg_match_all, kita perlu membina ungkapan biasa yang kita perlukan dahulu. Dalam contoh ini, kita perlu mengekstrak subrentetan sebelum dan selepas berbilang aksara tertentu daripada rentetan Kita boleh melakukannya dalam dua langkah berikut:
(1) Padankan subrentetan sebelum dan selepas aksara tertentu < .
Sebagai contoh, jika kita perlu mengeluarkan semua aksara sebelum (.*)特定字符
dan .*
daripada rentetan
. Hello world! My name is PHP.
world
Di sini PHP
mewakili kedudukan permulaan rentetan padanan dan /^(.*)world.*s(.*)PHP.*/
mewakili padanan aksara ruang.
(2) Padankan subrentetan selepas aksara tertentu /^
s
Kita boleh menggunakan corak ungkapan biasa
bermaksud memadankan sifar atau berbilang aksara arbitrari , watak khusus ialah watak yang perlu kita ekstrak.
Sebagai contoh, jika kita perlu mengeluarkan semua aksara selepas 特定字符(.*)
dan .*
daripada rentetan
. Hello world! My name is PHP.
world
PHP
Contoh Kod Penuh/world(.*)PHP(.*)/
<?php // 待匹配的字符串 $str = 'Hello world! My name is PHP.'; // 正则表达式模式 $pattern = '/^(.*)world.*s(.*)PHP.*/'; // 使用 preg_match_all 函数匹配字符串 preg_match_all($pattern, $str, $matches, PREG_PATTERN_ORDER); // 输出匹配结果 print_r($matches[1]); // 输出:Array ( [0] => Hello ) print_r($matches[2]); // 输出:Array ( [0] => My name is ) ?>
. Kemudian gunakan fungsi preg_match_all untuk memadankan rentetan dan menyimpan hasil yang sepadan dalam tatasusunan
. Akhirnya, hasil yang sepadan adalah output.$str
Dalam contoh kod di atas, kita boleh melihat hasil penggunaan $pattern
padanan corak ungkapan biasa: $matches
dan
dan /^(.*)world.*s(.*)PHP.*/
. Hello
My name is
$matches[1]
Ringkasan$matches[2]
Atas ialah kandungan terperinci Ungkapan Biasa PHP: Cara mengekstrak subrentetan sebelum dan selepas berbilang aksara tertentu daripada rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!