RegEx从邮件正文中提取一个单词

时间:2017-06-23 13:58:24

标签: regex vba outlook-vba

我需要从收到的邮件中提取一个单词。

我在引用网站后使用了正则表达式,但它没有给出任何结果,也没有抛出错误。

示例:说明:示例文本

我只想要冒号后面的第一个单词。

{{1}}

1 个答案:

答案 0 :(得分:1)

请注意,您的模式效果很好,但写得更好:

Description\s*:+\s*(\w+)

它将匹配Description,然后是0 +空格,1 + :个符号,再次是0或更多个空格,然后捕获到组1中的一个或多个单词字符(如字母,数字或_符号)。

现在,Capture Group 1值存储在M.SubMatches(0)中。此外,您无需运行.Test(),因为如果没有匹配项,则无需迭代它们。你其实想要一场比赛。

因此,只需使用

Set M1 = reg1.Execute(Item.body)
If M1.Count > 0 Then
   EAI = M1(0).SubMatches(0)
End If

M1(0)是第一个匹配,.SubMatches(0)是第一个群组中的文本。