我有一個像這樣的字符串(用點分隔的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 關注
- 175 瀏覽
添加回答
舉報
0/150
提交
取消