Rumah >pembangunan bahagian belakang >tutorial php >Mengapakah Saya Memerlukan Empat Garisan Terbalik untuk Memadankan Satu Garisan Terbalik dalam Ungkapan Biasa PHP?

Mengapakah Saya Memerlukan Empat Garisan Terbalik untuk Memadankan Satu Garisan Terbalik dalam Ungkapan Biasa PHP?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 11:12:02303semak imbas

Why Do I Need Four Backslashes to Match a Single Backslash in PHP Regular Expressions?

Memadankan garis miring ke belakang dalam Ungkapan Biasa PHP

Dalam PHP, melarikan diri daripada garis sengkang terbalik () dalam corak ungkapan biasa ialah cabaran biasa. Kekeliruan timbul daripada bilangan garisan belakang yang berbeza-beza yang diperlukan untuk memadankan satu garisan belakang.

Kes dan Keputusan Ujian

Seperti yang anda nyatakan, dua kes ujian menghasilkan padanan untuk kedua-dua tiga dan empat garis serong ke belakang:

$pattern1 = "/^[\\]{1,}$/"; // 3 backslashes
$pattern2 = "/^[\\]{1,}$/"; // 4 backslashes
$string = '\';

// Both tests return a match

Penjelasan

Sementara kedua-dua kes ujian mengembalikan padanan, tafsiran corak berbeza berdasarkan bilangan garis serong ke belakang yang digunakan.

  • Tiga Garis Garis Belakang (): Apabila menggunakan tiga garis miring ke belakang, corak tersebut sepadan dengan garis miring ke belakang diikuti dengan mana-mana aksara. Sebagai contoh, /\[s]/ akan sepadan dengan 's' tetapi bukan 's'.
  • Empat Garisan Sengkang Ke Belakang (\): Dengan empat garisan ke belakang, corak tersebut mencari aksara garisan belakang literal ( \). Oleh itu, ia sepadan dengan \s tetapi bukan s.

Cadangan

Untuk mengelakkan kekaburan dan memastikan padanan yang konsisten, adalah dinasihatkan untuk sentiasa menggunakan empat garis miring ke belakang (\ \) apabila memadankan garis miring ke belakang dalam corak ungkapan biasa PHP. Amalan ini memastikan bahawa corak itu sepadan dengan aksara garis miring terbalik literal, tanpa mengira konteks sekeliling.

$pattern = "/^[\\\\]{1,}$/"; // Preferred and recommended syntax

Jujukan Melarikan Diri

Selain itu, menggunakan garis miring ke belakang dalam kelas aksara boleh membawa kepada tafsiran yang tidak disengajakan. Contohnya, /[\\]/ di dalam kelas aksara akan memadankan garis serong terbalik literal, tetapi [\] akan memadankan mana-mana aksara yang didahului oleh sengkang terbalik.

Memahami nuansa ini membantu memastikan ungkapan biasa PHP anda padan dengan tepat corak yang dimaksudkan dan menghasilkan hasil yang diingini.

Atas ialah kandungan terperinci Mengapakah Saya Memerlukan Empat Garisan Terbalik untuk Memadankan Satu Garisan Terbalik dalam 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