Vì vậy, tôi có một chuỗi mà tôi cần phải chia theo địa chỉ EmailEmail tách địa chỉ
dấu chấm phẩy của: "[email protected];,.'o"@hotmail.com;"some;thing"@example.com
Cả hai địa chỉ email có giá trị
Vì vậy, tôi muốn có a List<string>
của những điều sau:
- "[email protected];,.'o"@hotmail năm
- "some;thing"@example.com
Nhưng cách tôi hiện đang tách các địa chỉ không hoạt động:
var addresses = emailAddressString.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
.Select(x => x.Trim()).ToList();
Do nhiều ;
nhân vật tôi kết thúc với địa chỉ email không hợp lệ.
Tôi đã thử một vài cách khác nhau, thậm chí đi xuống nếu chuỗi chứa dấu ngoặc kép và sau đó tìm chỉ mục của các ký tự ;
và làm theo cách đó, nhưng đó là một nỗi đau thực sự.
Có ai có đề xuất nào tốt hơn không?
Đề nghị của tôi sẽ là để đảm bảo rằng nhân vật delimiter của bạn không hiển thị bất cứ nơi nào khác ngoài để đánh dấu ranh giới giữa các email, vì vậy các email có ';' như một phần của tên của chúng (ví dụ: "some; [email protected]") không được phép. Nếu không, hãy tìm một ký tự phân cách khác, giống như một đường ống '|'? – ray
RegEx để giải cứu? Có thể bạn có thể điều chỉnh: http://stackoverflow.com/questions/7430186/regex-split-string-with-on-a-delimetersemi-colon-except-those-that-appear-in – Corak
Hãy thử những điều sau đây: '(^ |;) (. *?) @ ([\ d \ w] + [-] *) + \. \ w + ' – Camo