使用正则表达式和grepl检测以特定模式开头的单词

我不明白为什么
grepl("see*", "file SEC", ignore.case = TRUE)退货TRUE

我试图找到下手的所有单词see,如Seeseeingseen,等,并删除它们。“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


以上是使用正则表达式和grepl检测以特定模式开头的单词的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>