根据用户输入动态构造正则表达式时,使它们不区分大小写是一个常见的要求。当输入字符串可能同时包含大写和小写字符时,就会出现这种需要,但匹配应将它们视为等效。
一种简单的方法是在正则表达式中手动处理这两种情况,如本示例所示:
reg, err := regexp.Compile(`[a-zA-Z]`)
但是,如果正则表达式是从字符串构造的,则可以使用更优雅的解决方案。
创建不区分大小写的正则表达式,在表达式的开头添加 (?i):
reg, err := regexp.Compile("(?i)" + strings.Replace(s.Name, " ", "[ \._-]", -1))
此标志使正则表达式引擎忽略大小写区别,使匹配不区分大小写。
了解更多有关正则表达式标志的信息,请参阅“标志”术语下的 regexp/syntax 包文档。
以上是如何在 Go 中执行不区分大小写的正则表达式?的详细内容。更多信息请关注PHP中文网其他相关文章!