为了账号安全,请及时绑定邮箱和手机立即绑定

字符串模式后字符串的正则表达式

字符串模式后字符串的正则表达式

Go
HUH函数 2023-06-26 17:44:17
我有一个像这样的字符串(用点分隔的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+ 个字母、数字或_-

  • $- 字符串末尾。


查看完整回答
反对 回复 2023-06-26
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

^Exactfoobar(?:\.[a-z0-9_\-]+){2}(?:\.[A-Za-z0-9_\-]+)+$

https://regex101.com/r/PJ9V0L/1


查看完整回答
反对 回复 2023-06-26
  • 2 回答
  • 0 关注
  • 110 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信