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)
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
如果字符串被空格包围或者位于字符串的开头或结尾,我想计算字典中出现的单词数。
我正在使用 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)
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