首页 > 解决方案 > R中的str_extract:提取一个不跟随某些字符的字符串

问题描述

我试图从字符串中提取一个没有后跟“NOT”的子字符串。例如:

如果字符串看起来像“WKA NOT IN”,那么子字符串应该是 NA 如果字符串是“WKA abc”,则返回“WKA”。

我在 R 中尝试了 str_extract 并向后看: str_extract(pattern = "WKA (<!NOT)", string)

但是,我仍然从“WKA NOT IN”中得到“WKA”。我可以通过执行类似的操作来设置返回 NA 的规则!grepl("WKA NOT IN", string),但我想知道是否有一种简单的方法可以做到这一点?谢谢!

标签: rregexlookbehind

解决方案


我们可以创建一个正则表达式环视

library(stringr)
str_extract(str1, "WKA(?! NOT)")
#[1] NA    "WKA"

数据

str1 <- c( "WKA NOT IN", "WKA abc")

推荐阅读