Rumah > pembangunan bahagian belakang > Golang > Ungkapan biasa Golang membahagi rentetan berdasarkan kata kunci

Ungkapan biasa Golang membahagi rentetan berdasarkan kata kunci

WBOY
Lepaskan: 2024-02-10 15:15:08
ke hadapan
834 orang telah melayarinya

Ungkapan biasa Golang membahagi rentetan berdasarkan kata kunci

Editor PHP Apple memperkenalkan anda teknik pemprosesan rentetan yang hebat - ungkapan biasa golang untuk memisahkan rentetan berdasarkan kata kunci. Dalam pembangunan, kita sering perlu memisahkan rentetan mengikut kata kunci tertentu untuk memproses data selanjutnya. Dengan menggunakan ungkapan biasa golang, kami boleh melaksanakan fungsi ini dengan mudah dan meningkatkan kecekapan pembangunan. Artikel ini akan memperkenalkan anda secara terperinci cara menggunakan ungkapan biasa golang dan cara membelah rentetan mengikut kata kunci, membantu anda memproses rentetan dengan lebih fleksibel dalam pembangunan harian. Mari kita meneroka bersama-sama!

Kandungan soalan

Ini rentetan saya, dipecah mengikut kata kunci selepas findstudentbyid 现在,我将根据 find 单词之前的 find 单词之前和 by by id.

Jadi corak ekspresi biasa golang ialah `(?i)(^find{1})(w+)(by{1})(w+)`

Saya cuba membahagikan kata kunci ini findstudentbyid tetapi saya menghadapi masalah mencari keputusan tepat yang saya temui. Output jangkaan saya ialah [通过 id 查找学生] atau

find
student
by
id
Salin selepas log masuk

Tetapi saya tidak boleh melakukannya. Saya dah cuba kod golang ni

package main

import (
    "fmt"
    "regexp"
)

func main() {

    txt := "findstudentbyid"
    re := regexp.MustCompile(`(?i)(^find{1})(\w+)(by{1})(\w+)`)
    split := re.Split(txt, -1)
    set := []string{}
    for i := range split {
        set = append(set, split[i])
    }

    fmt.Println(set)
}
Salin selepas log masuk

Penyelesaian

Saya tidak fikir Regexp.Split() adalah penyelesaian yang tepat untuk situasi anda, mengikut dokumentasi:

Saya rasa apa yang anda perlukan ialah mencari subpadanan (seperti findstudentbyid ):

Jadi anda boleh menggunakan Regexp.FindStringSubmatch() seperti ini:

fmt.Println("result: ", re.FindStringSubmatch(txt))

result: [findstudentbyid find student by id]
Salin selepas log masuk

Saya juga fikir anda boleh memudahkan regex, tetapi jangan lupa meletakkannya dalam kurungan untuk mengendalikan subpadanan, seperti yang ditunjukkan dalam ulasan:

re := regexp.MustCompile(`(find)(.+)(by)(.+)`)
Salin selepas log masuk

Atas ialah kandungan terperinci Ungkapan biasa Golang membahagi rentetan berdasarkan kata kunci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan