Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk mengekstrak teks yang disertakan dalam kurungan persegi menggunakan ungkapan biasa PHP?

Bagaimana untuk mengekstrak teks yang disertakan dalam kurungan persegi menggunakan ungkapan biasa PHP?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-28 15:57:101053semak imbas

How to Extract Text Enclosed in Square Brackets Using PHP Regular Expressions?

Mengekstrak Teks yang Dilampirkan dalam Kurungan Segiempat dalam PHP

Cabaran untuk menangkap teks antara kurungan segi empat sama dalam PHP memerlukan pendekatan yang bernuansa. Percubaan biasa, menggunakan /[.*?]/ sebagai regex, hanya mendapatkan semula contoh pertama, meninggalkan anda dengan hasil yang tidak lengkap.

Menangkap Kepungan:

Untuk mengatasi had ini, gunakan ungkapan biasa yang merangkumi keseluruhan teks dalam kurungan segi empat sama. Pertimbangkan corak:

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[[^\]]*\]/", $text, $matches);

Di sini, /[1]/ berfungsi sebagai regex yang sepadan dengan mana-mana rentetan yang disertakan dalam kurungan segi empat sama. Aksara karet (^) sepadan dengan permulaan rentetan, diikuti dengan kurungan. Bahagian 2 menandakan watak yang bukan kurungan. Asterisk () sepadan dengan sebarang bilangan kejadian dan kurungan mengekor menyimpulkan corak.

Menjalankan regex ini pada teks yang disediakan akan menghasilkan:

Array (
     [0] => [This]
     [1] => [test]
     [2] => [eat]
     [3] => [shorts]
)

Menangkap Teks Di Dalam:

Sebagai alternatif, anda mungkin ingin mengekstrak teks tanpa kurungan. Ini memerlukan regex yang diubah suai:

$text = '[This] is a [test] string, [eat] my [shorts].';
preg_match_all("/\[([^\]]*)\]/", $text, $matches);

Dalam regex ini, (3*) menangkap sebarang aksara dalam kurungan segi empat sama, dengan berkesan mengalih keluar kurungan daripada output. Anda akan memperoleh:

Array (
     [0] => This
     [1] => test
     [2] => eat
     [3] => shorts
)

Ingat bahawa regex ini menganggap kurungan segi empat sama tidak bersarang dalam teks.


  1. ]
  2. ]
  3. ]

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak teks yang disertakan dalam kurungan persegi menggunakan 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