根據使用者輸入動態構造正規表示式時,使它們不區分大小寫是一個常見的要求。當輸入字串可能同時包含大寫和小寫字元時,就會出現這種需要,但匹配應將它們視為等效。
一個簡單的方法是在正規表示式中手動處理這兩種情況,如本範例所示:
reg, err := regexp.Compile(`[a-zA-Z]`)
但是,如果正規表示式是從字串構造的,則可以使用更優雅的解決方案。
建立不區分大小寫的正規表示式,在表達式的開頭加上(?i):
reg, err := regexp.Compile("(?i)" + strings.Replace(s.Name, " ", "[ \._-]", -1))
此標誌使正規表示式引擎忽略大小寫區別,使匹配不區分大小寫。
以了解更多有關正規表示式標誌的信息,請參閱「標誌」術語下的 regexp/syntax 套件文檔。
以上是如何在 Go 中執行不區分大小寫的正規表示式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!