我使用golang func (*Regexp) Match
检查字符串是否与某些模式匹配。matched = regexp.Match(mystr, []byte(pattern))
通过mystr满足以下要求时,如何编写模式以获取matched=true
:
因此mystr =“publicfile”,“alex / personalfile”,“merry / personalfile”,“david / personalfile”将被拒绝,这意味着match = false。
我如何为此目的写一个模式?提前致谢。
最佳答案
这是我的方法:我颠倒要求并获得false
或true
:
^(alex|merry|david)|^[^/]+$
正则表达式将匹配以
alex
,merry
或david
开头的所有字符串,或者所有不包含/
的字符串,并使用!
运算符反转Match
结果:var mystr = "alex/personalfile"
var pattern = regexp.MustCompile(`^(alex|merry|david)|^[^/]+$`)
var matched = !pattern.Match([]byte(mystr))
fmt.Println(matched)
结果:
false
参见IDEONE demo
关于regex - 如何为以下要匹配的字符串编写正则表达式模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31915595/