이제 물론,와 같은 두 경우를 모두 처리하는 정규식을 작성할 수 regexp.Compile("[a-zA-Z]")
있지만 정규식은 사용자가 지정한 문자열로 구성됩니다.
reg, err := regexp.Compile(strings.Replace(s.Name, " ", "[ \\._-]", -1))
s.Name
이름은 어디에 있습니까 ? 'North by Northwest'와 같을 수 있습니다. 이제 가장 분명한 해결책은의 각 문자를 살펴보고 각 문자에 대해 s.Name
'[nN]'을 쓰는 것입니다.
for i := 0; i < len(s.Name); i++ {
if s.Name[i] == " " {
fmt.Fprintf(str, "%s[ \\._-]", str);
} else {
fmt.Fprintf(str, "%s[%s%s]", str, strings.ToLower(s.Name[i]), strings.ToUpper(s.Name[i]))
}
}
그러나 나는 이것이 다소 우아하지 않은 해결책이라고 생각합니다. 속도는 실제로 문제가되지 않지만 다른 방법이 있는지 알아야합니다.