У меня есть строка, которая разделена ","
как string:= "abc@bk.com, cde@bk.com"
Я хочу создать регулярное выражение, которое будет охватывать все пробелы после и до сообщений электронной почты, или есть другая функция strings.Replace
для замены пробела?Они оба выполняют одну и ту же работу, но я не знаю, что лучше.Если регулярное выражение лучше, то вы приводите пример, а если функция strings.Replace
лучше, приведите пример этого.Я попробовал небольшой код: -
package main
import (
"fmt"
"regexp"
"strings"
)
type User struct {
Name []CustomerDetails `json:"name" bson:"name"`
}
type CustomerDetails struct {
Value string `json:"value" bson:"value"`
Note string `json:"note" bson:"note"`
SendNotifications bool `json:"send_notifications" bson:"send_notifications"`
}
func main() {
var emailRegexp = regexp.MustCompile("^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$")
var custName User
emails := "abc@bk.com, cde@bk.com"
splitEmails := strings.Split(emails, ",")
fmt.Println(splitEmails)
for _, email := range splitEmails {
email = strings.Replace(email, " ", "", -1)
if emailRegexp.MatchString(email) {
custName.Name = append(custName.Name, CustomerDetails{
Value: email,
})
}
}
fmt.Println(custName)
}
Этот пример основан на функции strings.Replace
.Кто-нибудь может помочь мне решить эту проблему?
Спасибо за ваше драгоценное время.