Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?

Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?

WBOY
WBOYasal
2021-11-01 15:46:233529semak imbas

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!

Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?

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;

ialah parameter pilihan Jika ditentukan, subrentetan yang dipisahkan akan dihadkan dan subrentetan terakhir akan mengandungi semua bahagian yang tinggal. Apabila nilai had ialah
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. 0NULL 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: $flagsPREG_SPLIT_NO_EMPTYPREG_SPLIT_DELIM_CAPTUREHasil keluaran: PREG_SPLIT_OFFSET_CAPTURE

Contohnya adalah seperti berikut:

<?php
    echo "<pre class="brush:php;toolbar:false">";
    $subject = &#39;PHP中文网:http://www.php.cn/, baidu百度:http://www.baidu.com/&#39;;
    $pattern = &#39;/[\s,:]+/&#39;;
    print_r( preg_split($pattern, $subject) );
    print_r( preg_split($pattern, $subject, 3) );
?>

Hasil keluaran:

Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?

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 = &#39;father mother andyou&#39;;
var_dump($str);
$chars = preg_split(&#39;/ /&#39;, $str, -1, PREG_SPLIT_OFFSET_CAPTURE);
var_dump($chars);
?>


PHP preg_quote()

Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?

Fungsi

<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

digunakan untuk melepaskan rentetan ungkapan biasa, iaitu, menambahkan garis miring ke belakang

di hadapan aksara khas Format sintaks fungsi ini adalah seperti berikut:

Perlu diambil perhatian bahawa:

preg_quote()

mewakili rentetan ungkapan biasa
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 = &#39;http://www.baidu.com/&#39;;
    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 );
?>

输出结果:

Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?

示例如下:

<?php
$keywords = &#39;$40 for a g3/400&#39;;
$keywords = preg_quote($keywords, &#39;/&#39;);
echo $keywords; // 返回 \$40 for a g3\/400
?>

输出结果:

Bagaimana untuk memisahkan dan melepaskan rentetan dengan ungkapan biasa PHP?

上述示例中,便是通过preg_quote() 函数用来对正则表达式字符串进行转义。

大家如果感兴趣的话,可以点击《PHP视频教程》、《正则表达式手册》进行更多关于PHP和正则表达式知识的学习。

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!

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