donxbje866688 2017-10-06 21:41
浏览 319
已采纳

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

I'm trying to enforce that a string I'm checking must end with a colon. However, I want to allow any set of characters prior to that.

The following are allowed:

match, _ := regexp.MatchString("([a-z]+):", "hello:") // Pass
match, _ := regexp.MatchString("([a-z]+):", "a12ab3c4:") // Pass
match, _ := regexp.MatchString("([a-z]+):", "a12#ab3c4:") // Pass

The following should fail:

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

I'm not quite sure how to come up with a regex expression to check for a trailing colon. ([a-z]+): doesn't quite seem to work.

  • 写回答

2条回答 默认 最新

  • douduxia1551 2017-10-06 21:49
    关注

    This should do it, match any amount of characters (not ':') and end on ':'

    ^[^:]+:+$
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?