Golang 检查字符串是否以指定后缀结尾
在Golang中,有时需要判断字符串是否以指定的后缀结尾,比如判断一个文件的扩展名是否为.txt。本文将介绍两种方法实现此功能,分别为strings.HasSuffix函数和strings.HasSuffix函数。
用strings.HasSuffix函数检查后缀
strings.HasSuffix是Golang内置的一个字符串方法,用于判断一个字符串是否以指定的后缀结尾。它的函数签名如下:
func HasSuffix(s, suffix string) bool
其中参数s是需要检查的字符串,参数suffix是后缀,函数返回值为bool类型,为true表示字符串s以后缀suffix结尾,为false则表示不是。
下面是一个使用strings.HasSuffix函数检查字符串是否以.txt结尾的示例代码:
package main
import (
"fmt"
"strings"
)
func main() {
fileName := "example.txt"
if strings.HasSuffix(fileName, ".txt") {
fmt.Printf("%s is a text file.\n", fileName)
} else {
fmt.Printf("%s is not a text file.\n", fileName)
}
}
输出:
example.txt is a text file.
用正则表达式检查后缀
另一种方法是使用正则表达式来检查字符串是否以指定的后缀结尾。这种方法需要用到regexp包。下面是一个用正则表达式检查字符串是否以.txt结尾的示例代码:
package main
import (
"fmt"
"regexp"
)
func main() {
fileName := "example.txt"
matched, _ := regexp.MatchString(`.*\.txt$`, fileName)
if matched {
fmt.Printf("%s is a text file.\n", fileName)
} else {
fmt.Printf("%s is not a text file.\n", fileName)
}
}
其中,正则表达式.*\.txt$用于匹配以.txt结尾的字符串。函数regexp.MatchString返回两个值,第一个是一个bool类型的值表示是否匹配成功,第二个是一个错误信息。在本示例中,我们忽略了错误信息。输出结果与上例相同。
结论
本文介绍了两种检查Golang字符串是否以指定后缀结尾的方法,分别为strings.HasSuffix函数和正则表达式。对于简单的检查,使用strings.HasSuffix函数更为方便,而对于复杂的检查,使用正则表达式会更加灵活。在实际使用中,请根据情况选择合适的方法。
极客笔记