1

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

我正在使用这样的答案:

library(stringi)

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

哪个返回3 1 0 1 1 0 0,但我期待3 1 0 0 0 0 0。所以问题是它也很重要"dutchAA"而且"AAbrown"我不想要。

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

4

1 回答 1

2

尝试使用以下正则表达式

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

正则表达式演示

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
于 2017-03-08T17:05:31.370 回答