在Go語言中替換所有與正則表示式匹配的字串


在Go語言中,你可以使用`regexp`包來替換所有與正則表示式匹配的字串出現。Go語言中的`regexp`包提供了一個`ReplaceAllString()`函式,用於將所有匹配字串的出現替換為新字串。

示例

以下是如何在Go語言中替換所有與正則表示式匹配的字串出現的示例:

package main

import (
   "fmt"
   "regexp"
)

func main() {
   str := "The quick brown fox jumps over the lazy dog"
   re := regexp.MustCompile("fox|dog")
   newStr := re.ReplaceAllString(str, "cat")
   fmt.Println(newStr)
}

在上面的示例中,我們有一個包含句子的字串`str`。我們想要將“fox”和“dog”的所有出現替換為“cat”。為此,我們首先使用`regexp.MustCompile()`編譯正則表示式模式。正則表示式模式匹配“fox”和“dog”這兩個詞。

接下來,我們使用輸入字串和替換字串作為引數呼叫`ReplaceAllString()`函式。該函式將所有匹配模式的出現替換為替換字串,並返回新字串。

上述程式碼的輸出將是:

輸出

The quick brown cat jumps over the lazy cat

您可以使用正則表示式替換字串中更復雜的模式。

示例

以下是用另一個示例,它將所有數字的出現替換為“#”字元:

package main

import (
   "fmt"
   "regexp"
)

func main() {
   str := "My phone number is 123-456-7890"
   re := regexp.MustCompile("[0-9]")
   newStr := re.ReplaceAllString(str, "#")
   fmt.Println(newStr)
}

在上面的示例中,我們有一個包含電話號碼的字串`str`。我們想要將電話號碼中的所有數字替換為“#”字元。為此,我們編譯一個正則表示式模式,該模式使用字元類`[0-9]`匹配任何數字。

接下來,我們使用輸入字串和替換字串作為引數呼叫`ReplaceAllString()`函式。該函式將所有匹配模式的出現替換為替換字串,並返回新字串。

輸出

My phone number is ###-###-####

結論

總之,在Go語言中替換所有與正則表示式匹配的字串出現很容易,可以使用`regexp`包的`ReplaceAllString()`函式來實現。

更新於:2023年4月18日

5000+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.