首頁 > 後端開發 > Golang > 主體

golang正規表示式根據關鍵字分割字串

WBOY
發布: 2024-02-10 15:15:08
轉載
796 人瀏覽過

golang正規表示式根據關鍵字分割字串

php小編蘋果為您介紹一種強大的字串處理技巧 - golang正規表示式根據關鍵字分割字串。在開發中,我們經常需要根據某個關鍵字對字串進行分割,以便進一步處理資料。透過使用golang的正規表示式,我們可以方便地實現這個功能,提高開發效率。本文將為您詳細介紹golang正規表示式的使用方法,以及如何根據關鍵字分割字串,幫助您在日常開發中更靈活地處理字串。讓我們一起來探索吧!

問題內容

這是我的字串,如findstudentbyid 現在,我將根據find 單字之前的find 單字之前和by by id 之後的關鍵字進行拆分。

所以golang正規表示式模式是 `(?i)(^find{1})(\w )(by{1})(\w )`

我正在嘗試拆分此關鍵字 findstudentbyid 但我遇到問題,無法找到我所找到的確切結果。 我的預期輸出是 [透過 id 找出學生]

find
student
by
id
登入後複製

但我無法做到這一點。我確實嘗試過這個 golang 程式碼

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)
}
登入後複製

解決方法

我不認為 Regexp.Split() 是適合您情況的解決方案,根據到文件

我想你需要的是找到子匹配(如 findstudentbyid ):

所以你可以這樣使用 Regexp.FindStringSubmatch()

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

result: [findstudentbyid find student by id]
登入後複製

我還認為您可以簡化正則表達式,但不要忘記將其放入括號中來處理子匹配,就像註釋中指出的那樣:

re := regexp.MustCompile(`(find)(.+)(by)(.+)`)
登入後複製

以上是golang正規表示式根據關鍵字分割字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!