特定单词前模式的正则表达式

regex for pattern before a certain word

我在寻找正确的 RegEx 来识别某个词之前的词(但没有后一个词)时遇到问题。下面是模式,其中 W1 是动态分配的字。

   Set regExp = New RegExp 
    With regExp
        .Pattern = "\S* " + W1
        .IgnoreCase = True
        .Global = True

这个模式有效,但我得到了整个模式。如果我有这样的句子:"Today is a sunny day" 并且 W1 被设置为 "day",这个模式给了我 "sunny day".

我想要阳光明媚,没有 W1。这可能吗?

谢谢,m

W1 放入 positive lookahead assertion.

.Pattern = "\S+(?= *" + W1 + ")"