[英]Regex for suffix detection in GoLang
我试图强制我检查的字符串必须以冒号结尾。 但是,我想在此之前允许任何字符集。
允许以下情况:
match, _ := regexp.MatchString("([a-z]+):", "hello:") // Pass
match, _ := regexp.MatchString("([a-z]+):", "a12ab3c4:") // Pass
match, _ := regexp.MatchString("([a-z]+):", "a12#ab3c4:") // Pass
以下应该失败:
match, _ := regexp.MatchString("([a-z]+):", ":::") // Fail
match, _ := regexp.MatchString("([a-z]+):", "key1") // Fail
match, _ := regexp.MatchString("([a-z]+):", "") // Fail
match, _ := regexp.MatchString("([a-z]+):", ":") // Fail
match, _ := regexp.MatchString("([a-z]+):", "") // Fail
我不太确定如何提出一个正则表达式来检查尾随冒号。 ([az]+):
似乎不太有效。
这应该这样做,匹配任意数量的字符(不是“:”)并以“:”结尾
^[^:]+:+$
您要求使用正则表达式,但实现目标的更简单、性能更好的方法如下:
func Matches(str string) bool {
return str[len(str)-1] == ':' &&
!strings.ContainsRune(str[0:len(str)-1], ':')
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.