我想计算一个字典中出现在字符串中的单词数,如果它被空格包围,或者它是在字符串的开头或结尾。
我正在使用this这样的答案:
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上运行时,这个正则表达式工作正常。
答案 0 :(得分:2)
尝试使用以下正则表达式:
(?:\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