搜尋
首頁後端開發Golang如何使用 Go 的 Regexp 套件從字串中提取大括號內的所有字串?

How Can I Extract All Strings Enclosed in Curly Braces from a String Using Go's Regexp Package?

在Go 中使用正規表示式來找出字串符合

本文探討了檢索給定正則表達式與指定字串的所有匹配的任務。我們將檢查範例字串並使用 Go 的 regexp 套件實作一個解決方案,以捕獲大括號內的字串。

問題陳述

給定一個字串:

{city}, {state} {zip}

我們的目標是傳回一個陣列或切片,其中包含 curly之間字串的所有符合項目

為了實現這一點,我們可以利用正規表示式來定義所需的模式。但是,與最初的嘗試相比,需要進行一些關鍵修改。

首先,我們刪除正規表示式分隔符號(“/”),因為它們在 Go 中是不必要的。其次,我們使用原始字串文字(用反引號`表示)來定義正規表示式模式。這允許我們使用單一反斜線 () 來轉義正規表示式元字元。最後,由於我們不需要捕獲各個值,因此我們可以簡化正規表示式模式以匹配大括號之間的字串,而無需捕獲括號。

這是程式碼的更新版本:

r := regexp.MustCompile(`{[^{}]*}`)
matches := r.FindAllString("{city}, {state} {zip}", -1)

此程式碼將傳回包含以下符合項目的陣列:

["{city}", "{state}", "{zip}"]

潛水層次

潛水層次
r := regexp.MustCompile(`{([^{}]*)}`)
matches := r.FindAllStringSubmatch("{city}, {state} {zip}", -1)
潛水層次>

如果我們只想提取大括號內的值,我們可以使用FindAllStringSubmatch和稍微修改的正規表示式模式,其中包括捕獲括號:

在此模式中, ([^{}]*) 是一個捕獲組,它匹配除大括號之外的任意數量的字元。使用 FindAllStringSubmatch 將為每個匹配傳回一個子匹配數組。然後,我們可以循環遍歷這些子匹配來取得括號內的值。

  • 正規表示式詳細資料
  • { - 文字左大括號
([^{}]*) - 捕捉符合零點零]個或多個字元(不包括大寫字元)的群組大括號} -字面右花括號

以上是如何使用 Go 的 Regexp 套件從字串中提取大括號內的所有字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
學習GO String操縱:使用'字符串”軟件包學習GO String操縱:使用'字符串”軟件包May 09, 2025 am 12:07 AM

Go的"strings"包提供了豐富的功能,使字符串操作高效且簡單。 1)使用strings.Contains()檢查子串。 2)strings.Split()可用於解析數據,但需謹慎使用以避免性能問題。 3)strings.Join()適用於格式化字符串,但對小數據集,循環使用 =更有效。 4)對於大字符串,使用strings.Builder構建字符串更高效。

GO:使用標準'字符串”包的字符串操縱GO:使用標準'字符串”包的字符串操縱May 09, 2025 am 12:07 AM

Go語言使用"strings"包進行字符串操作。 1)拼接字符串使用strings.Join函數。 2)查找子串使用strings.Contains函數。 3)替換字符串使用strings.Replace函數,這些函數高效且易用,適用於各種字符串處理任務。

使用GO的'字節”軟件包掌握字節切片操作:實用指南使用GO的'字節”軟件包掌握字節切片操作:實用指南May 09, 2025 am 12:02 AM

資助bytespackageingoisesential foreffited byteSemanipulation,uperingFunctionsLikeContains,index,andReplaceForsearchingangingAndModifyingBinaryData.itenHancesperformanceNandCoderAceAnibility,MakeitiTavitalToolToolToolToolToolToolToolToolToolForhandLingBinaryData,networkProtocols,networkProtocoLss,networkProtocols,andetFilei

學習GO二進制編碼/解碼:使用'編碼/二進制”軟件包學習GO二進制編碼/解碼:使用'編碼/二進制”軟件包May 08, 2025 am 12:13 AM

Go語言使用"encoding/binary"包進行二進制編碼與解碼。 1)該包提供binary.Write和binary.Read函數,用於數據的寫入和讀取。 2)需要注意選擇正確的字節序(如BigEndian或LittleEndian)。 3)數據對齊和錯誤處理也是關鍵,確保數據的正確性和性能。

GO:帶有標準'字節”軟件包的字節切​​片操作GO:帶有標準'字節”軟件包的字節切​​片操作May 08, 2025 am 12:09 AM

1)usebybytes.joinforconcatenatinges,2)bytes.bufferforincrementalwriting,3)bytes.indexorbytes.indexorbytes.indexbyteforsearching bytes.bytes.readereforrednorederencretingnchunknunknchunknunk.sss.inc.softes.4)

進行編碼/二進制包:優化二進制操作的性能進行編碼/二進制包:優化二進制操作的性能May 08, 2025 am 12:06 AM

theencoding/binarypackageingoiseforporptimizingBinaryBinaryOperationsDuetoitssupportforendiannessessandefficityDatahandling.toenhancePerformance:1)usebinary.nativeendiandiandiandiandiandiandiandian nessideendian toavoid avoidByteByteswapping.2)

Go Bytes軟件包:簡短的參考和提示Go Bytes軟件包:簡短的參考和提示May 08, 2025 am 12:05 AM

Go的bytes包主要用於高效處理字節切片。 1)使用bytes.Buffer可以高效進行字符串拼接,避免不必要的內存分配。 2)bytes.Equal函數用於快速比較字節切片。 3)bytes.Index、bytes.Split和bytes.ReplaceAll函數可用於搜索和操作字節切片,但需注意性能問題。

Go Bytes軟件包:字節切片操縱的實例Go Bytes軟件包:字節切片操縱的實例May 08, 2025 am 12:01 AM

字節包提供了多種功能來高效處理字節切片。 1)使用bytes.Contains檢查字節序列。 2)用bytes.Split分割字節切片。 3)通過bytes.Replace替換字節序列。 4)用bytes.Join連接多個字節切片。 5)利用bytes.Buffer構建數據。 6)結合bytes.Map進行錯誤處理和數據驗證。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具