在正则表达式中,我无法解决(在golang中)如何匹配字符,分隔符或字符串尾部。下面几乎做什么,我想:如何匹配golang正则表达式中的字符或字符串结尾?

url := "test20160101" 
if i, _ := regexp.MatchString("[-a-zA-Z/]20[012]\\d[01]\\d[0123]\\d[-a-zA-Z/]", url); i == true { 
    t := regexp.MustCompile("[-a-zA-Z/](20[012]\\d[01]\\d[0123]\\d)[-a-zA-Z/]").FindStringSubmatch(url)[1] 
    fmt.Println("match: ", t) 
} 

但我想也符合以下:

url := "test-20160101-" 
url := "/20160101/page.html" 
[-a-zA-Z/][-a-zA-Z\\z/]

2016-08-23 Jacob

+1

只是关于正则表达式编译的一个注意事项,以防您习惯于像在问题中那样编写它。正则表达式编译*是昂贵的*。做一次并存储结果。最近看到了一些代码在循环中执行了MustCompile。这是一个非常缓慢的错误。 –

+0

是的,你不应该把'\ z'放在字符类中。它会匹配那里的文字“z”。 –

+0

@ZanLynx好的指针。它只是我的测试代码,但我们不希望人们效仿它。 –