我使用golang func (*Regexp) Match
检查字符串是否与某些模式匹配。
matched = regexp.Match(mystr, []byte(pattern))
当传递mystr满足以下要求时,如何编写模式以获取matched=true
:
so mystr =" publicfile"," alex / personalfile"," merry / personalfile"," david / personalfile"将被拒绝,这意味着匹配=假。
如何为此目的编写一个模式?提前谢谢。
答案 0 :(得分:1)
以下是我的方法:我反转要求并获得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
答案 1 :(得分:0)
^(?:(?:alex|merry|david).*|(.*\/.*))$
你可以尝试这样的事情。这将匹配所有,但你只需要抓住groups
。参见演示。