Go 正規表示式可提升字串處理能力,其語法遵循 POSIX 標準,提供了字元類別、元字元、量詞和分組等功能。建立正規表示式可使用 regexp.MustCompile 函數,符合字串可使用 MatchString 方法,尋找符合項目可使用 FindString 方法,取代字串可使用 ReplaceAllString 方法,分組可透過正規表示式中的圓括號擷取。實戰案例中可使用正規表示式驗證電子郵件地址的有效性。
用Go 正規表示式提升字串處理能力
正規表示式(Regex)是一種強大的工具,可以快速輕鬆地尋找、修改和提取字串中的模式。 Go 內建了正規表示式函式庫,讓你有效地處理和分析文字資料。
正規表示式語法
Go 中的正規表示式語法遵循 POSIX 標準,並藉鑒了 Perl 正規表示式的一些功能。以下是基本語法:
[0-9]
符合任何數字。 \d
符合任何數字,.
符合任何字元。 a
會比對一個或多個 a 字元。 建立正規表示式
在Go 中,可以使用regexp.MustCompile
函數建立正規表示式:
import "regexp" var re = regexp.MustCompile(`[0-9]+`) // 匹配数字字符串
匹配字串
使用MatchString
方法可以檢查字串是否與正規表示式匹配:
re.MatchString("1234") // true
尋找匹配項目
FindString
方法傳回符合正規表示式的第一個子字串:
re.FindString("1234abc") // "1234"
取代字串
ReplaceAllString
方法使用給定的字串取代所有符合項目:
re.ReplaceAllString("1234abc1234", "XYZ") // "XYZabcXYZ"
擷取群組
##正規表示式中的分組可以被捕獲和引用:re = regexp.MustCompile(`(\d+)-(\d+)-(\d+)`) matches := re.FindStringSubmatch("2023-02-28") fmt.Println(matches[1]) // "2023" fmt.Println(matches[2]) // "02" fmt.Println(matches[3]) // "28"
實戰案例:驗證電子郵件地址
func isValidEmail(email string) bool { re := regexp.MustCompile(`^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$`) return re.MatchString(email) }
以上是用 Golang 正規表示式提升字串處理能力的詳細內容。更多資訊請關注PHP中文網其他相關文章!