VBA Excel正则expression式 – \ b字边界不匹配,如果字是在string的开始

我在Excel中使用VBA正则expression式引擎来匹配单词边界上开始的单词(例如\babc )。

但是,如果单词在string的开头,这不起作用。

一种select是在string的开始处进行比较(例如^abc )“,但是这会使代码变得更复杂一点,是否有更好的解决scheme?

你可以使用替代?

 (?:\b|^)abc 

更新:

至less在Excel 2010中, \b按预期工作。

 Sub test() Set re = CreateObject("VBScript.RegExp") re.Pattern = "\babc" MsgBox re.test("abc") re.Pattern = "^abc" MsgBox re.test("abc") re.Pattern = "(?:\b|^)abc" MsgBox re.test("abc") End Sub 

上面的输出是真的,真的,对我来说是真的。

我不确定为什么这不适用于VBA。 在任何正则expression式实现中,我已经看到\ b匹配字边界也在string的开头。

也许你可以尝试这样的事情: (?:^|\b)abc