正则表达式在outlook vba中提取文本和数字

标签 regex vba outlook

我有这样的外发电子邮件:

Dear XYZ,

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

CASE ID: 123654

Best Regards,
XYZ

文本可以是一个或两个段落。我想制作两个正则表达式。一个应该给我段落中的文本,另一个应该给我数字,即 CASE ID。结果应如下所示:

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


123654

我已经成功创建了一个 RegEx 来使用 (CASE ID\s*[:]+\s*(\w*)\s*)但我还没有能够提取段落。任何帮助将不胜感激。

最佳答案

基本上,您可以或应该改为执行一个正则表达式,这将提供匹配组。

在几乎任何其他语言中它看起来像这样(使用“gs”标志忽略换行符):

(.+?)CASE ID: (\d+)

但是对于 vbscript,我们有这样的东西:

(.*?[^\$]*)CASE ID: (\d+)

你还需要像这样处理匹配组:

Dim RegEx : Set RegEx = New RegExp
RegEx.Pattern = "(.*?[^\$]*)CASE ID: (\d+)"
RegEx.Global  = True
RegEx.MultiLine = True
Dim strTemp : strTemp = "Lorem ipsum " & VbCrLf & "Cannot be translated to english " & VbCrLf & "CASE ID: 153" 
WScript.Echo RegEx.Execute(strTemp)(0).SubMatches(0)
WScript.Echo RegEx.Execute(strTemp)(0).SubMatches(1)

问题是,只有在消息中包含常量字符串“CASE ID:”时,这才会起作用。如果字符串丢失,例如“:”之后的换行符不起作用

关于正则表达式在outlook vba中提取文本和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47420800/

相关文章:

java - 正则表达式非法转义字符

azure - 如何使用 ADF 从 Outlook 检索电子邮件正文

python - Outlook RestAPI 无法正常工作

VBA 字范围操作看起来不同

html - Outlook - 电子邮件中页脚的错误显示宽度

javascript - 我如何在这个正则表达式中自己编写一种转义字符?

java - 从查询中获取表名

javascript - 这个正则表达式到底在做什么?

vba - 如何改进我的 "if and else if"VBA?代码

vba - 使用 VBA 的离线人员的 Lync 通知