我正在尝试匹配“strid”我试过
.Pattern = "^[\B]{1,}\[0-9]\s\-\s[P][0-9]\s*"
模式但不起作用。
strid = "KB299817 - X3 any string i want"
Set re = New RegExp
With re
.Pattern = "^[\B]{1,}\[0-9]\s\-\s[X][0-9]\s*"
.IgnoreCase = False
.Global = False
End With
答案 0 :(得分:0)
strid = item1.Subject
Set re = New RegExp
With re
.Pattern = "^B[A-Z][0-9][0-9][0-9][0-9][0-9][0-9]\s\-\s[P][0-9]\s*"
.IgnoreCase = False
.Global = False
End With
我得到了这个感谢:)
答案 1 :(得分:0)
你想说你的正则表达式中字母K是可选的吗?如果是这样,你可以尝试这个:
^K?B\d+\s*?-\s*?X\d (.*)$
否则,请使用以下内容:
^KB\d+\s*?-\s*?X\d (.*)$
对于上面两个正则表达式,\ s *?考虑到正则表达式的性能,这只是一种指定你可能有更多那个空间但是以非贪婪方式的方法。如果您始终确定只有一个空格,则可以将其指定为:
^KB\d+ - X\d (.*)$
如果VB不支持像\ d或\ s这样的现代语法,你可能想要像这样使用
^KB[0-9]+ - X[0-9] (.*)$
请注意,在我的所有正则表达式中,要捕获的最后一个字符串位于group()中。因此,如果VB库支持它,将很容易引用该部分。