Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?
Dalam artikel sebelumnya, saya membawakan anda "Bagaimana untuk melakukan carian dan penggantian ungkapan biasa dalam PHP? 》, yang memperkenalkan secara terperinci pengetahuan berkaitan melakukan carian dan penggantian ungkapan biasa dalam PHP Dalam artikel ini, kami akan terus melihat pengetahuan berkaitan segmentasi rentetan dan melarikan diri dalam ungkapan biasa kepada semua orang!
Dalam artikel sebelum ini, kami belajar tentang melaksanakan padanan ungkapan biasa global dalam PHP, mengesan elemen tatasusunan yang sepadan dengan corak tertentu, melakukan carian ungkapan biasa dan Kami boleh menggantikan operasi sedemikian melalui fungsi preg_match()
, fungsi preg_match_all()
, fungsi preg_grep()
dan fungsi preg_replace()
Tujuan utama menggunakan ungkapan biasa adalah untuk mencapai fungsi berkuasa dengan cara yang mudah.
Terdapat banyak operasi antara ungkapan biasa dan rentetan, termasuk menggunakan ungkapan biasa untuk memisahkan rentetan Seterusnya, mari kita lihat cara kita boleh menggunakan ungkapan aksara untuk Memisahkan rentetan.
<strong><span style="font-size: 20px;">preg_split() </span></strong>
Fungsi
Dalam PHP fungsi preg_split()
memisahkan rentetan melalui ungkapan biasa Fungsi ini Sintaks format rentetan Terbatas;
array preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ),
atau
, ini bermaksud "tiada had", dan disyorkan untuk menggunakan NULL.
$pattern
ialah parameter pilihan dengan 3 nilai. Jika ditetapkan kepada $subject
, preg_split() akan mengembalikan bahagian bukan kosong yang diasingkan. Jika ditetapkan kepada $limit
, ungkapan kurungan dalam corak yang dibataskan akan ditangkap dan dikembalikan. Jika ditetapkan kepada -1
, rentetan ofset akan dilampirkan pada setiap kejadian padanan. 0
NULL
Ini akan menukar setiap elemen dalam tatasusunan yang dikembalikan supaya setiap elemen menjadi subrentetan yang dipisahkan oleh elemen ke-0 dan elemen pertama ialah offset subrentetan dalam subjek Tatasusunan kuantiti. Nilai pulangan ialah tatasusunan yang terdiri daripada subrentetan yang diperolehi selepas membelah rentetan subjek menggunakan corak.
Seterusnya mari kita lihat penggunaan fungsi preg_split() melalui contoh adalah seperti berikut: $flags
PREG_SPLIT_NO_EMPTY
PREG_SPLIT_DELIM_CAPTURE
Hasil keluaran: PREG_SPLIT_OFFSET_CAPTURE
Contohnya adalah seperti berikut:
<?php echo "<pre class="brush:php;toolbar:false">"; $subject = 'PHP中文网:http://www.php.cn/, baidu百度:http://www.baidu.com/'; $pattern = '/[\s,:]+/'; print_r( preg_split($pattern, $subject) ); print_r( preg_split($pattern, $subject, 3) ); ?>
Hasil keluaran:
Seperti yang dapat dilihat daripada contoh di atas, fungsi preg_split() boleh Menyelesaikan pemisahan rentetan dengan ungkapan. Seterusnya mari kita lihat cara untuk melarikan diri daripada ungkapan biasa.
<?php $str = 'father mother andyou'; var_dump($str); $chars = preg_split('/ /', $str, -1, PREG_SPLIT_OFFSET_CAPTURE); var_dump($chars); ?>
PHP preg_quote()
<strong><span style="font-size: 20px;">PHP preg_quote()</span></strong>
Aksara biasa Termasuk semua aksara boleh cetak dan tidak boleh cetak yang tidak dinyatakan secara eksplisit sebagai aksara meta, termasuk semua huruf besar dan huruf kecil, nombor, tanda baca dan beberapa simbol. Ungkapan biasa yang paling mudah ialah satu aksara biasa yang digunakan untuk membandingkan rentetan carian. Sebagai contoh, ungkapan biasa aksara tunggal /A/ akan sentiasa sepadan dengan huruf A. Selain aksara biasa, ungkapan biasa juga boleh mengandungi "metacharacters". Metacharacter boleh dibahagikan kepada metacharacter single-character dan metacharacter multi-character. Contohnya, metacharacter d, yang sepadan dengan aksara angka. Fungsi PHP
di hadapan aksara khas Format sintaks fungsi ini adalah seperti berikut:
Perlu diambil perhatian bahawa:
preg_quote()
preg_quote($str [, $delimiter = NULL])ialah parameter pilihan dan aksara tambahan perlu dilepaskan. Jika parameter
ditentukan, aksara yang ditentukan juga akan terlepas. Ini biasanya digunakan untuk melepaskan pembatas yang digunakan oleh fungsi PCRE.
ialah pembatas yang paling biasa. Fungsi
$str
akan menambah garis miring ke belakang sebelum setiap aksara ungkapan biasa yang disediakan oleh parameter $delimiter
. Ini biasanya digunakan apabila beberapa rentetan masa jalan perlu dipadankan sebagai ungkapan biasa. $delimiter
正则表达式特殊字符有:.
\
+
*
?
[
^
]
$
(
)
{
}
=
!
<code>>
|
:
-
。要清楚/
不是正则表达式特殊字符。
接下来我们通过示例来看一下使用 preg_quote() 函数对字符串进行转义,示例如下:
<?php $url = 'http://www.baidu.com/'; echo preg_quote($url) . "<br />"; echo preg_quote($url, "/") . "<br />"; $textbody = "baidu百度 is *very* good to study."; $word = "*very*"; echo preg_replace( "/".preg_quote($word)."/", "<i>".$word."</i>", $textbody ); ?>
输出结果:
示例如下:
<?php $keywords = '$40 for a g3/400'; $keywords = preg_quote($keywords, '/'); echo $keywords; // 返回 \$40 for a g3\/400 ?>
输出结果:
上述示例中,便是通过preg_quote() 函数用来对正则表达式字符串进行转义。
Atas ialah kandungan terperinci Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!