我使用VBA代码(使用Microsoft VBScript正则表达式5.5库)将邮件中的纯文本ID从我们的错误跟踪系统替换为超链接。
消息可以包含类似“Bug 1234567”或“Issue 1234567”的字符串。
我使用下面的代码来匹配第一个选项:
Set re = CreateObject("vbscript.regexp")
re.Pattern = "Bug [0-9][0-9][0-9][0-9][0-9][0-9][0-9]"
For Each match In re.Execute(body)
MsgBox match.Value
Next
我想同时匹配两个选项。
下列模式不起作用。只有一个选项仍然匹配(被替换)。
re.Pattern = "(Bug|Issue) [0-9][0-9][0-9][0-9][0-9][0-9][0-9]"
re.Pattern = "(Bug [0-9][0-9][0-9][0-9][0-9][0-9][0-9])|(Issue [0-9][0-9][0-9][0-9][0-9][0-9][0-9])"
1条答案
按热度按时间hgc7kmma1#
您的模式很好,但可以通过明确声明它应该包含
[0-9]
7次来简化,即:缺少的是
Global
属性,根据this site,该属性指定正则表达式应该匹配所有匹配项,而不仅仅是第一个匹配项。因此,整个代码变成: