2014-02-14 4 views
0

У меня есть String, который содержит список адресов электронной почты, как так:vb.net Regexp Split разделенных запятыми

Dim address1 As String = """Merkel, Angela"" <[email protected]>, ""Peter Altmeyer"" <[email protected]>" 

что я пытаюсь это АРХИВ отделить String в запятой. Я полагаю, что мне нужно Regexp.Split поэтому, но я понятия не имею, что именно я должен сделать, чтобы получить выходной массив

"Merkel, Angela" <[email protected]> 
"Peter Altmeyer" <[email protected]> 

Я особенно смущает двойной кавычки "" избежать котировку отметка. Это тоже ускользает в регулярном выражении?

ответ

1

Вы можете просто сделать это с помощью метода String.Split, включив «>» в ​​разделитель («>,»); однако «>» будет отсутствовать в результате и ему придется повторно добавить его.

С Regex вы можете сделать это следующим образом:

Dim parts() As String = Regex.Split(address1, "(?<=>),\s") 

Здесь я использую шаблон Regex

(?<=prefix)find 

, который находит позицию после префикса. Результат не включает префикс. Поэтому только ", " удаляется с выхода, а «>» остается.

+0

Нет, этот кусок будет до первого адреса, как '«Merkel' и 'Ангела» <[email protected]> ' –

+0

Хорошо, я скорректированного мой ответ. –

1

Вы можете разделить этот RegEx: (?<=>),\s*?(?=""). Он находит запятые (с нулевым или большим количеством пробелов после), которым предшествует < и продолжается "".

Смежные вопросы