Go正則表達(dá)式匹配字符串,替換字符串方式
更新時(shí)間:2025年02月25日 09:18:56 作者:Laravel技術(shù)社區(qū)
介紹了Go語(yǔ)言中使用正則表達(dá)式進(jìn)行字符串匹配和替換的方法,包括匹配單個(gè)子字符串和所有子字符串,個(gè)人經(jīng)驗(yàn)分享,旨在為讀者提供實(shí)用的編程技巧,并鼓勵(lì)大家支持腳本之家
Go正則表達(dá)式匹配字符串,替換字符串
正則表達(dá)式
package main
import (
"fmt"
"regexp"
)
func main() {
match, err := regexp.MatchString("h[a-z]+.*d$", "hello world")
if err != nil {
panic(err)
}
fmt.Println(match)
match, err = regexp.MatchString("h[a-z]+.*d$", "ello world")
if err != nil {
panic(err)
}
fmt.Println(match)
}
// $ go run main.go
// 輸出如下
/**
true
false
*/匹配所有子字符串
package main
import (
"fmt"
"regexp"
)
func main() {
c, err := regexp.Compile("h[a-z]")
if err != nil {
panic(err)
}
res := c.FindAllString("hello world", -1)
fmt.Printf("res = %v\n", res)
res2 := c.FindAllString("hello world hi ha h1", -1)
fmt.Printf("res2 = %v\n", res2)
}
// $ go run main.go
// 輸出如下
/**
res = [he]
res2 = [he hi ha]
*/替換所有子字符串
package main
import (
"fmt"
"regexp"
)
func main() {
c, err := regexp.Compile("h[a-z]")
if err != nil {
panic(err)
}
res := c.ReplaceAll([]byte("hello world"), []byte("?"))
fmt.Printf("res = %s\n", res)
res2 := c.ReplaceAll([]byte("hello world hi ha h1"), []byte("?"))
fmt.Printf("res2 = %s\n", res2)
}
// $ go run main.go
// 輸出如下
/**
res = ?llo world
res2 = ?llo world ? ? h1
*/匹配中文
package main
import (
"fmt"
"regexp"
)
func main() {
match, err := regexp.MatchString("\\x{4e00}-\\x{9fa5}", "hello world")
if err != nil {
panic(err)
}
fmt.Println(match)
match, err = regexp.MatchString("\\p{Han}+", "hello 世界")
if err != nil {
panic(err)
}
fmt.Println(match)
}
// $ go run main.go
// 輸出如下
/**
false
true
*/
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Go 語(yǔ)言入門(mén)學(xué)習(xí)之正則表達(dá)式
- Golang棧結(jié)構(gòu)和后綴表達(dá)式實(shí)現(xiàn)計(jì)算器示例
- 一文帶你全面掌握Go語(yǔ)言中的正則表達(dá)式
- Go語(yǔ)句與表達(dá)式案例手冊(cè)深度解析
- 在?Go?語(yǔ)言中使用?regexp?包處理正則表達(dá)式的操作
- Go語(yǔ)言實(shí)戰(zhàn)之詳細(xì)掌握正則表達(dá)式的應(yīng)用與技巧
- Golang中正則表達(dá)式語(yǔ)法及相關(guān)示例
- Go語(yǔ)言利用正則表達(dá)式處理多行文本
- Go中regexp包常見(jiàn)的正則表達(dá)式操作
- Go語(yǔ)言結(jié)合正則表達(dá)式實(shí)現(xiàn)高效獲取數(shù)據(jù)
- Go expr 通用表達(dá)式引擎的使用
相關(guān)文章
Go語(yǔ)言題解LeetCode888公平糖果交換示例詳解
這篇文章主要為大家介紹了Go語(yǔ)言題解LeetCode888公平糖果交換示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Golang信號(hào)量設(shè)計(jì)實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了Golang信號(hào)量設(shè)計(jì)實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Go語(yǔ)言函數(shù)的延遲調(diào)用(Deferred Code)詳解
本文將介紹Go語(yǔ)言函數(shù)和方法中的延遲調(diào)用,正如名稱(chēng)一樣,這部分定義不會(huì)立即執(zhí)行,一般會(huì)在函數(shù)返回前再被調(diào)用,我們通過(guò)一些示例來(lái)了解一下延遲調(diào)用的使用場(chǎng)景2022-07-07
golang使用json格式實(shí)現(xiàn)增刪查改的實(shí)現(xiàn)示例
這篇文章主要介紹了golang使用json格式實(shí)現(xiàn)增刪查改的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
深入了解Go語(yǔ)言中web框架的中間件運(yùn)行機(jī)制
大家在使用iris框架搭建web系統(tǒng)時(shí),一定會(huì)用到中間件。那么你了解中間件的運(yùn)行機(jī)制嗎?你知道為什么在iris和gin框架的請(qǐng)求處理函數(shù)中要加c.Next()函數(shù)嗎?本文就和大家一起探究該問(wèn)題的答案2023-02-02
golang獲取變量或?qū)ο箢?lèi)型的幾種方式總結(jié)
在golang中并沒(méi)有提供內(nèi)置函數(shù)來(lái)獲取變量的類(lèi)型,但是通過(guò)一定的方式也可以獲取,下面這篇文章主要給大家介紹了關(guān)于golang獲取變量或?qū)ο箢?lèi)型的幾種方式,需要的朋友可以參考下2022-12-12

