首頁  >  文章  >  後端開發  >  如何在 Go 中提取兩個字元或字串之間的子字串?

如何在 Go 中提取兩個字元或字串之間的子字串?

Barbara Streisand
Barbara Streisand原創
2024-11-02 21:27:30589瀏覽

How to Extract a Substring Between Two Characters or Strings in Go?

執行程式碼以提取兩個字元或字串之間的子字串

如果您有一個字串並且想要從其中提取特定的子字串, Go 提供了一種靈活的機制來完成此操作。

例如,考慮以下字串:

<h1>Hello World!</h1>

提取子字串

提取"你好世界!」使用Go 從該字元在字串中,您可以實現以下函數:

<code class="go">// GetStringInBetween Returns empty string if no start string found
func GetStringInBetween(str string, start string, end string) (result string) {
    s := strings.Index(str, start)
    if s == -1 {
        return
    }
    s += len(start)
    e := strings.Index(str[s:], end)
    if e == -1 {
        return
    }
    e += s + e - 1
    return str[s:e]
}</code>

理解函數

此函數需要三個參數:

  • str:原始字串
  • start:起始字串或字元
  • end:結束字串或字元

其工作原理如下:

  1. 它找到原始字串中start 的第一個索引。
  2. 它將 start 的長度加到起始索引,有效地跳過起始字串。
  3. 它找到從調整後的起始索引開始的子字串中 end 的第一個索引。
  4. 透過將調整後的起始索引加入找到的 end 索引來計算結束索引。
  5. 最後傳回從調整後的起始索引到結束索引的子字串。

範例用法

要使用此函數,您可以傳入原始字串,即起始字串,以及結束字串。例如:

start := "<h1"
end := "</h1>"
substring := GetStringInBetween("&lt;h1&gt;Hello World!&lt;/h1&gt;", start, end)
// substring will be "Hello World!"

以上是如何在 Go 中提取兩個字元或字串之間的子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn