好吧,我一直在试图解决这个问题,但对正则表达式来说还是一个新手,我一直不太成功。我的目标是产生一个匹配,将一个字符串与另一个字符串进行比较,该字符串可能比前一个字符串大得多或相同。只有当第一个字符串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)
答案 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
。