VBA正则表达式无法正常工作

时间:2013-04-25 15:02:23

标签: regex vba

好吧,我一直在试图解决这个问题,但对正则表达式来说还是一个新手,我一直不太成功。我的目标是产生一个匹配,将一个字符串与另一个字符串进行比较,该字符串可能比前一个字符串大得多或相同。只有当第一个字符串1.与另一个字符串的某些部分不区分大小写匹配时,才会发生此匹配.2。在另一个字符串中成功匹配的字符串应该是单独的单词或短语,而不是另一个单词的一部分,这意味着它由字符串的开头或空格引出,并以字符串或空格的结尾结束。非常欢迎来自熟练的正则表达式用户的任何帮助。

'this yields : run time error 5018 = Unexpected quantifier in regular expression
RegExPattern = "(\b|^)?" + "[" + ColumnArr(PhraseCt) + "]" + "(\b|[ ])?)" 
With RegEx
     .MultiLine = False
     .Global = True
     .IgnoreCase = False
     .Pattern = RegExPattern
End With
Set Matches = RegEx.Execute(SearchTerm)

1 个答案:

答案 0 :(得分:1)

\b应与字符串的开头匹配(请参阅VBA Excel regex - \b word boundary doesn't match if word is at beginning of string以确认Excel 2010中的内容)。所以你应该可以使用

RegExPattern = "\b" + ColumnArr(PhraseCt) + "\b"

(假设ColumnArr(PhraseCt)是您要搜索的单词)。如果您希望它不区分大小写,也可以使用IgnoreCase = True

相关问题