繁体   English   中英

GoLang 中后缀检测的正则表达式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM