我一直在努力寻找听起来很简单的问题的解决方案。
我需要在文本字符串中找到一个单词“HYD”(大写字母)。我需要匹配才能准确。澄清一下,任何包含“HYD”但不等于的单词/文本都不应匹配。空格和符号除外。
在以下示例中查找:
text1 HYD text2
text1,HYD.text2
在下面的例子中忽略:
text1 HYDROtext2
text1 MYHYD text2
我能得到的最接近的是以下模式:
objRegEx.Pattern = "[^az]HYD[^az]"
问题在于,如果字符串以“HYD”开头或结尾,它将找不到“HYD”。
来自评论:
\b为您的解决方案使用字边界标志:
objRegEx.Pattern = "\bHYD\b"
Run Code Online (Sandbox Code Playgroud)
只会命中整个值为 HYD 的字符串,而不是其中嵌入了其他一些字符的 HYD 的字符串。
Userather InStr(s, "HYD"):InStr是VBA中的语言关键字,这种方法比使用正则表达式更快。
"HYD"这将返回中第一次出现的位置String s,如果"HYD"不包含则返回 0。