Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mencari semua padanan rentetan dalam pendakap kerinting menggunakan Go Regex?

Bagaimana untuk mencari semua padanan rentetan dalam pendakap kerinting menggunakan Go Regex?

Linda Hamilton
Linda Hamiltonasal
2025-01-05 17:30:40908semak imbas

How to Find All String Matches Within Curly Braces Using Go Regex?

Cari Semua Padanan Rentetan dengan Regex dalam Go

Soalan:

Bagaimana saya boleh mencari dan mengembalikan semua padanan rentetan yang berlaku antara pendakap kerinting dalam rentetan input yang diberikan menggunakan ungkapan biasa dalam Pergi?

Penyelesaian:

Untuk mendapatkan semula semua padanan antara pendakap kerinting, anda boleh menggunakan langkah berikut:

  1. Alih keluar Pembatas Regex: Abaikan garis miring ke hadapan (/) yang biasanya digunakan untuk mengehadkan biasa ungkapan.
  2. Gunakan Literal Rentetan Mentah: Pertimbangkan untuk menggunakan literal rentetan mentah untuk melepaskan aksara meta regex dengan satu garis serong ke belakang.
  3. Kumpulan Tangkapan Pilihan: Jika anda hanya memerlukan kandungan rentetan antara pendakap kerinting, anda boleh menghapuskan tangkapan kumpulan.

Contoh untuk Semua Perlawanan:

r := regexp.MustCompile(`{[^{}]*}`)
matches := r.FindAllString("{city}, {state} {zip}", -1)

Contoh untuk Kandungan Dalaman:

r := regexp.MustCompile(`{([^{}]*)}`)
matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1)
for _, v := range matches {
    fmt.Println(v[1])
}

Regex Butiran:

  • {: Watak pembukaan pendakap kerinting literal.
  • ([^{}]*): Kumpulan penangkapan yang sepadan dengan mana-mana jujukan aksara (0 atau lagi) yang bukan pendakap kerinting.
  • }: Watak penutup pendakap kerinting literal.

Atas ialah kandungan terperinci Bagaimana untuk mencari semua padanan rentetan dalam pendakap kerinting menggunakan Go Regex?. 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