使用正则表达式和grepl检测以特定模式开头的单词
我不明白为什么
grepl("see*", "file SEC", ignore.case = TRUE)退货TRUE?
我试图找到下手的所有单词see,如See,seeing,seen,等,并删除它们。“file SEC”上面的字符串没有这样的词,但TRUE被返回。
回答
该模式"see*"检查“se”后跟任意数量的"e"s ( e*)(包括零),因此“SE”匹配。
我相信你可能想研究这样的东西,没有“*”
grepl("^see", "file SEC", ignore.case = TRUE)
FALSE
除了“^”符号,您还可以包含一个词边界b,这样您就可以检测以该模式开头的词,但排除那些不在多词字符中的词:
grepl("bSee", c("file SEC", "See", "seeing", "seen", "he was seen", "He did not forsee the event"), ignore.case = TRUE)
[1] FALSE TRUE TRUE TRUE TRUE FALSE