Rumah  >  Artikel  >  hujung hadapan web  >  Cara Memadankan Contoh Regex Di Luar Petikan dalam JavaScript: Panduan Komprehensif

Cara Memadankan Contoh Regex Di Luar Petikan dalam JavaScript: Panduan Komprehensif

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-25 07:04:29830semak imbas

How to Match Regex Instances Outside Quotes in JavaScript: A Comprehensive Guide

Madankan Contoh Tidak Dilampirkan dalam Petikan

Dalam soalan sebelumnya, adalah dicadangkan supaya memadankan semua kejadian regex sambil mengecualikan teks dalam petikan tidak boleh dilaksanakan. Walau bagaimanapun, had ini boleh diatasi menggunakan regex yang kompleks tetapi berkesan.

Kunci kepada regex ini ialah memerhatikan bahawa subrentetan berada di luar petikan jika bilangan petikan genap mendahuluinya. Ini boleh diwakili sebagai pernyataan pandangan ke hadapan berikut:

(?=([^"]*"[^"]*")*[^"]*$)

Penegasan ini memastikan bahawa teks sebelumnya mengandungi bilangan petikan genap diikuti dengan subrentetan semasa.

Untuk mengecualikan petikan yang dilepaskan , kita perlu mempertimbangkan garis miring ke belakang juga. Regex menjadi lebih kompleks sedikit:

\+(?=([^"\]*(\.|"([^"\]*\.)*[^"\]*"))*[^"]*$)

regex ini mula-mula mendahului mana-mana aksara bukan petikan (S). Apabila menemui garis serong ke belakang atau petikan, ia sama ada mengabaikan aksara seterusnya (jika ia adalah garis serong ke belakang) atau mara ke petikan tidak lari seterusnya sebaliknya.

Walaupun regex ini agak rumit, ia sepadan dengan semua keadaan dengan berkesan daripada regex yang tidak disertakan dalam petikan, membenarkan hasil yang diingini dalam kaedah split() dan replace() JavaScript.

Atas ialah kandungan terperinci Cara Memadankan Contoh Regex Di Luar Petikan dalam JavaScript: Panduan Komprehensif. 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