Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mengekstrak semua subrentetan yang disertakan dalam pendakap kerinting menggunakan regex Go?

Bagaimana untuk mengekstrak semua subrentetan yang disertakan dalam pendakap kerinting menggunakan regex Go?

Susan Sarandon
Susan Sarandonasal
2024-12-25 09:56:31924semak imbas

How to Extract All Substrings Enclosed in Curly Braces Using Go's Regex?

Mencari Semua Padanan Rentetan Menggunakan Regex dalam Go

Apabila bekerja dengan rentetan dalam Go, selalunya perlu mencari corak atau subrentetan tertentu. Ungkapan biasa menawarkan cara yang berkesan untuk memadankan dan memanipulasi teks. Satu tugas biasa ialah mencari semua padanan corak tertentu dan menyimpannya dalam kepingan atau tatasusunan.

Pernyataan Masalah:

Diberi rentetan yang mengandungi pendakap kerinting yang melampirkan subrentetan , matlamatnya adalah untuk mengekstrak semua subrentetan antara pendakap dan mengembalikannya sebagai tatasusunan. Contohnya, diberikan rentetan:

{city}, {state} {zip}

Kita perlu mengembalikan tatasusunan mengandungi:

  • {city}
  • {negeri}
  • {zip}

Penyelesaian:

Untuk mencapai matlamat ini, kami boleh menggunakan pakej regexp Go. Walau bagaimanapun, terdapat beberapa perkara penting yang perlu diberi perhatian semasa mentakrifkan ungkapan biasa:

  • Elak Pembatas Regex: Dalam Go, ungkapan biasa tidak disertakan dalam garis miring ke hadapan (/) oleh lalai.
  • Gunakan Raw String Literal: Apabila mentakrifkan corak regex yang kompleks, adalah dinasihatkan untuk menggunakan literal rentetan mentah (diawali dengan kutu belakang ``) untuk melepaskan aksara khas dengan satu garis miring ke belakang.
  • Menangkap Kumpulan: Menangkap kumpulan boleh digunakan untuk mengekstrak bahagian tertentu pada perlawanan . Walau bagaimanapun, untuk masalah ini, kami boleh memudahkan ungkapan biasa dan mengelak daripada menggunakannya.

Berikut ialah kod Go yang dikemas kini:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    str := "{city}, {state} {zip}"

    // Define the regular expression pattern
    r := regexp.MustCompile(`{[^{}]*}`)

    // Find all matches
    matches := r.FindAllString(str, -1)

    // Print the matches
    for _, match := range matches {
        fmt.Println(match)
    }
}

Pecahan Regex:

  • {[^{}]*}: Padan dengan mana-mana subrentetan yang disertakan dalam kerinting pendakap.

Output:

  • {city}
    {state}

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak semua subrentetan yang disertakan dalam pendakap kerinting menggunakan regex Go?. 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