Dalam artikel sebelum ini, saya membawakan anda "Asas ungkapan biasa yang menarik dalam PHP (ilustrasi terperinci) ", yang memperkenalkan secara ringkas beberapa ungkapan biasa, dalam artikel ini kami akan meneruskan untuk melihat beberapa fungsi umum ungkapan biasa saya harap ia akan membantu semua orang!
Dalam artikel sebelum ini, kami memperkenalkan beberapa definisi asas ungkapan biasa dan aplikasi asas fungsi preg_match()
Tujuan utama menggunakan ungkapan biasa adalah untuk lulus Mudah cara untuk mencapai fungsi yang berkuasa. Untuk menjadi mudah, berkesan dan berkuasa, peraturan ungkapan biasa adalah rumit, malah lebih sukar untuk membina ungkapan biasa yang betul dan berkesan, jadi menggunakan hanya satu fungsi preg_match()
tidak mencukupi.
Ekspresi biasa ialah teknik penting dan kompleks semasa memproses data teks. Sesetengah editor teks juga menggunakan ungkapan biasa untuk melaksanakan fungsi "cari/ganti" peringkat tinggi. Jika anda ingin melaksanakan lebih banyak fungsi, anda perlu mengetahui lebih banyak fungsi Seterusnya, mari kita lihat lebih banyak pengetahuan fungsi tentang ungkapan biasa.
<strong><span style="font-size: 18px;">preg_match_all()</span></strong><strong><span style="font-size: 18px;"></span></strong>
Fungsi
Sebelum kami hanya memperkenalkan fungsi asas preg_match()
, terdapat juga fungsi dan The preg_match()
sangat serupa dengan fungsi - preg_match_all()
Fungsi ini boleh mencari semua hasil dalam rentetan yang boleh sepadan dengan ungkapan biasa.
Format sintaks fungsi ini adalah seperti berikut:
preg_match_all($pattern, $subject [, &$matches [, $flags = PREG_PATTERN_ORDER [, $offset = 0 ]]])
Perlu diambil perhatian bahawa:
$pattern
mewakili corak yang akan dicari, iaitu, ditakrifkan Ungkapan biasa; $subject
mewakili rentetan yang akan dicari; > mewakili parameter pilihan $matches
digunakan untuk mula mencari dari kedudukan yang ditentukan dalam rentetan sasaran. $flags
$offset
$flags mewakili parameter pilihan, yang boleh digunakan dalam kombinasi dengan teg berikut, $offset
<strong>PREG_PATTERN_ORDER</strong>
<strong>PREG_SET_ORDER</strong>
PREG_OFFSET_CAPTURE<strong>PREG_OFFSET_CAPTURE</strong>
Jika teg ini diluluskan, setiap perlawanan yang ditemui dikembalikan akan tingkatkan offsetnya berbanding rentetan sasaran. Ambil perhatian bahawa ini akan menukar setiap elemen rentetan hasil yang sepadan dalam $matches
supaya ia menjadi rentetan hasil yang sepadan dengan elemen ke-0 dan mengimbangi rentetan hasil yang sepadan dalam subjek sebagai elemen pertama.
di mana PREG_PATTERN_ORDER
dan PREG_SET_ORDER
tidak boleh digunakan pada masa yang sama, fungsi preg_match_all() boleh mengembalikan bilangan padanan untuk $pattern (mungkin 0), atau FALSE
jika ralat berlaku.
Seterusnya mari kita lihat aplikasi fungsi preg_match_all() melalui contoh untuk memadankan rentetan Contohnya adalah seperti berikut:
<?php $subject = "abcdefghijkdefabcedfdefxyzdef"; $pattern_1 = '/(def)(abc)/'; $num_1 = preg_match_all($pattern_1, $subject, $matches_1,PREG_PATTERN_ORDER); echo "<pre class="brush:php;toolbar:false">"; var_dump($matches_1); var_dump($num_1); $pattern_2 = '/(def)(abc)/'; $num_2 = preg_match_all($pattern_2, $subject, $matches_2,PREG_OFFSET_CAPTURE, 3); var_dump($matches_2); var_dump($num_2); ?>
Hasil keluaran:
.
Daripada contoh di atas, kami telah menyelesaikan pemadanan rentetan melalui fungsi preg_match_all(). Padanan ungkapan biasa global boleh diselesaikan melalui aplikasi fungsi preg_match_all().
Kemudian mari kita lihat cara untuk mengesan elemen tatasusunan yang sepadan dengan corak tertentu. Ini adalah apabila fungsi preg_grep() digunakan.
<code><strong><span style="max-width:90%">preg_grep() </span></strong>
preg_grep()
preg_grep($pattern, $input [, $flags = 0 ])
Gunakan ungkapan biasa Selain padanan rentetan, formula juga boleh memadankan elemen dalam tatasusunan. Fungsi preg_grep() dalam PHP boleh mencari semua elemen dalam tatasusunan dan mengembalikan tatasusunan semua elemen yang sepadan dengan ungkapan biasa. Format sintaks fungsi ini adalah seperti berikut:
$pattern
表示要搜索的模式,也就是定义好的正则表达式;$input
表示要搜索的数组;$flags
表示可选参数,可以设置为 PREG_GREP_INVERT
,这时函数会返回数组中与给定模式 $pattern
不匹配的元素组成的数组。perg_grep() 函数将遍历 $input 数组中的每一个元素,让该元素与模式 $pattern 进行匹配,然后将匹配成功或者匹配失败的元素返回。
接下来,我们通过示例来看一下使用 perg_grep() 函数匹配数组中的元素,示例如下:
<?php $test_arr = array( 'PHP中文网', 'http://www.php.cn/', 'php教程', 'abcdefg' ); $preg = '/^[a-z]/'; $preg_arr_1 = preg_grep($preg, $test_arr); $preg_arr_2 = preg_grep($preg, $test_arr, PREG_GREP_INVERT); echo '<pre class="brush:php;toolbar:false">'; var_dump($preg_arr_1); var_dump($preg_arr_2); ?>
输出结果:
上述示例便是通过preg_grep() 函数匹配数组中的元素。
大家如果感兴趣的话,可以点击《PHP视频教程》、《正则表达式手册》进行更多关于PHP和正则表达式知识的学习。
Atas ialah kandungan terperinci Padanan ungkapan biasa global dan elemen tatasusunan yang sepadan dalam PHP (contoh terperinci). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!