Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mencipta Regex untuk Mengendalikan Petikan yang Dilepaskan dalam Petikan dalam PHP?

Bagaimana untuk Mencipta Regex untuk Mengendalikan Petikan yang Dilepaskan dalam Petikan dalam PHP?

Barbara Streisand
Barbara Streisandasal
2024-12-02 21:59:14152semak imbas

How to Create a Regex to Handle Escaped Quotes Within Quotes in PHP?

Regex untuk Mengendalikan Petikan yang Dilepaskan Dalam Petikan

Menggunakan rentetan dalam PHP boleh memberikan cabaran, terutamanya apabila berurusan dengan aksara yang mempunyai makna istimewa, seperti petikan yang melarikan diri. Untuk menghuraikan rentetan secara berkesan dan mendapatkan semula kandungannya, adalah penting untuk mencipta corak regex yang mengabaikan petikan yang dilepaskan yang terkandung dalam diri mereka sendiri.

Corak Regex Diubahsuai

Untuk menangani keperluan untuk mengabaikan petikan yang terlepas, corak regex yang diubah suai boleh digunakan. Regex yang dipertingkatkan mempertimbangkan semua aksara yang dilepaskan, bukan hanya petikan.

Pilihan 1: Teknik Nyahgulung-Gelung

Pertimbangkan corak regex berikut:

"[^"\\]*(?:\.[^"\\]*)*"

Corak ini menggunakan teknik "membuka-gelung" Friedl. Ia mengenal pasti dengan cekap semua aksara yang bukan petikan yang dilepaskan (bahagian pertama corak) dan membenarkan aksara yang dilarikan dengan menggunakan pengendali ?:.

Pilihan 2: Pengkuantiti Posesif dan Kumpulan Atom

Sebagai alternatif, anda boleh menggunakan pengkuantiti posesif atau kumpulan atom untuk mencipta yang lebih cekap regex:

/"([^"\]++|\.)*"/
/"((?>[^"\]+)|\.)*"/

Kaedah ini menjadikan corak regex lebih pantas, membolehkan pemprosesan rentetan yang lebih cekap.

Pelaksanaan PHP

Untuk PHP, corak regex yang disyorkan untuk petikan berganda dan tunggal ialah:

$re_dq = '/"[^"\\]*(?:\\.[^"\\]*)*"/s';
$re_sq = "/'[^'\\]*(?:\\.[^'\\]*)*'/s";

Dengan menggunakan corak regex yang dikemas kini ini, anda boleh menghuraikan rentetan dengan berkesan dalam PHP, mengabaikan petikan yang terlepas semasa menangkap data yang diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Regex untuk Mengendalikan Petikan yang Dilepaskan dalam Petikan dalam 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