我有一个像这样的字符串(用点分隔的4个单词)Exactfoobar.foobar-_nocaps.foobar-_nocaps.foobar-_caps我需要编写一个正则表达式来查找上面的模式。可以有 4 个或更多由点分隔的字段第一个词应该是准确的Exactfoobar.第二个和第三个单词不能有大写字母,但可以有 -_第 4 个单词等可以大写 -_我正在考虑使用组,但它在这里不起作用:^Exactfoobar\.([a-z0-9][a-z0-9_\-.])+([a-z0-9][a-zA-Z0-9_\-.])+$我应该如何考虑将一个字符串与另一个字符串匹配。是否可以?在 golang 中尝试这个,但似乎无法正确使用上面的正则表达式package mainimport ( "fmt" "regexp")func main() { var validID = regexp.MustCompile(`^ Exactfoobar\.([a-z0-9][a-z0-9_\-.])+([a-z0-9][a-z0-9_\-.])+$`) fmt.Println(validID.MatchString("Exactfoobar.somestring.some_other-string.someStringwithCaps"))}结果:false谢谢
2 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
您可以使用
^Exactfoobar(?:\.[a-z0-9][a-z0-9_-]*){2}(?:\.[a-zA-Z0-9][a-zA-Z0-9_-]*)+$
请参阅正则表达式演示
^
- 字符串的开头Exactfoobar
- 一些话(?:\.[a-z0-9][a-z0-9_-]*){2}
- 两次重复 a.
,然后是一个小写字母或数字,然后是 0+ 个小写字母或数字,_
或者-
(?:\.[a-zA-Z0-9][a-zA-Z0-9_-]*)+
- 1次或多次重复\.
- 点[a-zA-Z0-9]
- 一个字母或数字[a-zA-Z0-9_-]*
- 0+ 个字母、数字或_
或-
$
- 字符串末尾。
慕的地6264312
TA贡献1817条经验 获得超6个赞
- 2 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消