Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Memisahkan Rentetan Berdasarkan Ungkapan Biasa dalam Go?

Bagaimana untuk Memisahkan Rentetan Berdasarkan Ungkapan Biasa dalam Go?

Barbara Streisand
Barbara Streisandasal
2024-11-10 02:59:02882semak imbas

How to Split Strings Based on Regular Expressions in Go?

Memisahkan Rentetan Menggunakan Ungkapan Biasa dalam Go

Dalam Go, membelah rentetan berdasarkan ungkapan biasa boleh dicapai dengan regexp.Split fungsi. Ini amat berguna apabila pembatas adalah dinamik atau memerlukan padanan corak yang lebih kompleks.

Cara Menggunakan regexp.Split

Sintaks regexp.Split ialah:

func Split(s string, re *Regexp, n int) []string
  • s ialah rentetan yang akan dipecahkan.
  • semula ialah penuding kepada ungkapan biasa yang disusun.
  • n ialah bilangan maksimum subrentetan untuk dikembalikan. Gunakan -1 tanpa had.

Contoh: Memisahkan Rentetan Berdasarkan Nombor

Pertimbangkan contoh membelah rentetan pada kejadian nombor:

package main

import (
    "fmt"
    "regexp"
)

func main() {
    re := regexp.MustCompile("[0-9]+")
    txt := "Have9834a908123great10891819081day!"

    split := re.Split(txt, -1)
    set := []string{}

    for i := range split {
        set = append(set, split[i])
    }

    fmt.Println(set) // ["Have", "a", "great", "day!"]
}

Penjelasan:

  • Ungkapan biasa "[0-9] " sepadan dengan urutan nombor.
  • The Fungsi Split mengambil txt rentetan input dan membahagikannya kepada subrentetan berdasarkan ungkapan biasa yang ditentukan.
  • Hasilnya subrentetan disimpan dalam tatasusunan pisah.
  • Memandangkan parameter n ditetapkan kepada -1, tiada had pada bilangan subrentetan.
  • Kami mengulangi tatasusunan pisah dan menambah setiap subrentetan kepada tatasusunan yang ditetapkan.
  • Outputnya ialah ["Ada", "a", "hebat", "hari!"].

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Berdasarkan Ungkapan Biasa dalam 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