匹配任何东西,直到第一次出现单词与正则表达式

Match anything until first occurrence of word with regex

我有下面这句话:

I'm screaming to my friend hello, hello, hello!

我想匹配前导 I'm 和第一次出现的单词 hello 之间的任何内容。

我有以下正则表达式:

I'm[^hello]*

如果我有一个字符而不是整个单词,这会非常有效,在我的例子中 hello

它看起来像 hello 不被识别为一个完整的单词,而是被识别为单个字符,它们之间有一个 OR 运算符。

我得到的结果是:I'm scr

预期结果是:I'm screaming to my friend

如何匹配单词 hello 第一次出现之前的任何内容?

你可以试试:

I'm (?:(?!\bhello\b).)*

如果您的正则表达式 tool/language 支持捕获组,请改用它们:

(I'm .*?)(?:\bhello\b|$)