vb.net Regexp Split逗号分隔String

时间:2014-02-14 18:32:57

标签: .net regex vb.net

我有一个String,其中包含一个邮件地址列表,如下所示:

Dim address1 As String = """Merkel, Angela"" <angela@example.com>, ""Peter Altmeyer"" <peter@example.com>"

我想要的是将逗号分开String。我认为我需要Regexp.Split因此,但我没有线索,我需要做什么来获得

的输出数组
"Merkel, Angela" <angela@example.com>
"Peter Altmeyer" <peter@example.com>

我特别对双引号""感到困惑,以逃避引号。这在正则表达式中也是如此转义吗?

3 个答案:

答案 0 :(得分:1)

您可以使用String.Split方法,只需添加“&gt;”即可。在分隔符(“&gt;,”);然而“&gt;”将从结果中遗漏,并将不得不重新添加。

使用Regex,您可以按照以下方式执行此操作:

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

这里我使用正则表达式

(?<=prefix)find

找到前缀后面的位置。结果不包括前缀。因此,仅从输出中删除", "和“&gt;”仍然存在。

答案 1 :(得分:1)

您可以拆分此RegEx:(?<=>),\s*?(?="")。它找到逗号(后面有零个或多个空格)前面有一个<,后面跟一个""

答案 2 :(得分:0)

Dim address1 As String = """Merkel, Angela"" <angela@example.com>, ""Peter Altmeyer""     <peter@example.com>"
Dim parts() As String = Regex.Split(address1, "(?<=>),\s*?(?="")")