R 中正则表达式的问题:匹配由空格包围的单词或字符串的 start/end

Troubles with regexp in R: Match word surrounded by whitespace or start/end of string

如果字符串被空格包围或者位于字符串的开头或结尾,我想计算字典中出现的单词数。

我正在使用 this 这样的答案:

library(stringi)

testStr <- c("dutch dutch brown", "brown ", "AAdutch", "dutchAA", "AAbrown",
             "brownAA", "hello")
stri_count_regex(testStr, "(^|\s+)dutch|brown(\s+|$)")

returns 3 1 0 1 1 0 0,但我期待 3 1 0 0 0 0 0。所以问题是它也计算 "dutchAA""AAbrown" 我不想要的。

我对此有点困惑,因为当我 运行 它在 RegExr 上时,这个正则表达式工作正常。

尝试使用以下 regex :

(?:\b|\s+)(?:dutch|brown)(?:\s+|\b)

regex demo

r

library(stringi)

testStr <- c("dutch dutch brown", "brown ", "AAdutch", "dutchAA", "AAbrown",
             "brownAA", "hello")
stri_count_regex(testStr, "(?:\b|\s+)(?:dutch|brown)(?:\s+|\b)")  # 3 1 0 0 0 0 0