Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Menggunakan Menangkap Kumpulan dalam Ungkapan Biasa Go?

Bagaimanakah Saya Boleh Menggunakan Menangkap Kumpulan dalam Ungkapan Biasa Go?

Mary-Kate Olsen
Lepaskan: 2024-12-26 12:37:09
asal
855 orang telah melayarinya

How Can I Use Capturing Groups in Go Regular Expressions?

Merakam Kumpulan dalam Ungkapan Biasa Go

Apabila mengalihkan kod daripada Ruby ke Go, pembangun sering menghadapi masalah keserasian dengan ungkapan biasa. Ruby menyokong menangkap kumpulan dalam regex, ciri yang tidak tersedia secara asli dalam pustaka RE2 Go.

Menulis Semula Ungkapan untuk Go

Untuk meniru fungsi kumpulan menangkap, langkah berikut boleh diambil:

1. Gunakan Kumpulan Tangkapan Bernama:
Daripada menggunakan kurungan sudut, tambahkan "P" antara kurungan pembukaan dan nama kumpulan, cth., (?Pd{4}) untuk kumpulan tahun.

2. Nama Kumpulan Rujukan Silang:
Gunakan fungsi regexp.SubexpNames() untuk mendapatkan senarai nama kumpulan tangkapan.

3. Akses Data Ditangkap:
Gunakan nama kumpulan yang sesuai sebagai hujah untuk berfungsi seperti FindStringSubmatch untuk mendapatkan semula nilai yang ditangkap.

Contoh:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    r := regexp.MustCompile(`(?P<Year>\d{4})-(?P<Month>\d{2})-(?P<Day>\d{2})`)
    s := `2015-05-27`
    fmt.Printf("Matched Substrings: %#v\n", r.FindStringSubmatch(s))
    fmt.Printf("Group Names: %#v\n", r.SubexpNames())
}
Salin selepas log masuk

Output:

Matched Substrings: [2015 05 27]
Group Names: [ Year Month Day ]
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Menangkap Kumpulan dalam Ungkapan Biasa Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan