R中如何筛选同时以特定词No开头且结尾的文本句子
R语言匹配同时以No开头和结尾的字符串方案
你之前使用的正则仅限制了字符串开头为No,没有设置结尾匹配规则,因此所有前两个字符为No的字符串都会被命中,不符合预期。
方案1:匹配完全等于"No"的字符串
如果你的需求是仅筛选整个字符串内容就是No的条目,直接用锚定字符串开头和结尾的正则即可:
library(stringr) result <- str_detect(data, "^No$")
运行后返回的逻辑向量为 FALSE FALSE FALSE TRUE TRUE FALSE FALSE,刚好匹配示例数据中第4、5位的两个独立No,完全排除你提到的误匹配条目。
方案2:匹配以独立单词No开头、以独立单词No结尾的句子
如果后续需要支持中间存在其他内容的场景(例如No one says No这类句子),可以加上单词边界匹配,避免把Nothing、Noe这类前两位为No的单词误判为开头是独立单词No:
# 匹配规则:开头为独立单词No,结尾为No,中间可包含任意内容 result <- str_detect(data, "^\\bNo\\b.*\\bNo$")
内容的提问来源于stack exchange,提问作者Hey_It'sME
相关产品推荐
相关产品推荐

