У меня есть такая строка (4 слова, разделенные точкой)
Exactfoobar.foobar-_nocaps.foobar-_nocaps.foobar-_caps
Мне нужно написать регулярное выражение, чтобы найти шаблон, как указано выше.
- Может быть 4 или более полей, разделенных точкой
- Первое слово должно быть точно
Exactfoobar.
- 2-е и 3-е слово не может иметь заглавных букв, но может иметь -_
- 4-е слово и т. Д. Могут иметь заглавные буквы с -_
Я думал об использовании групп, но здесь это не работает:
^Exactfoobar\.([a-z0-9][a-z0-9_\-.])+([a-z0-9][a-zA-Z0-9_\-.])+$
Как мне подумать о сопоставлении строки с другой строкой. Возможно ли это?
Попытка сделать это в golang, но, похоже, не могу правильно понять приведенное выше регулярное выражение
package main
import (
"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
Спасибо