我有一个向量,它有这样的字符元素
"2-CONTROL", "DAN-COLOR", "3M", "DIPLOMVEJ 373", "ABE 34 HUN"
我想过滤掉字符串中有独立数字的元素。如果数字附加到字母或连字符,则不应对其进行过滤。
上面的向量将在过滤后给出以下结果。
"2-CONTROL", "DAN-COLOR", "3M"
我曾尝试在grepl中使用"\\b\\d+\\b"
,但它也会过滤掉"2-CONTROL"
。
发布于 2018-06-02 06:15:31
对于tidyverse
方法,请使用stringr::str_detect()
library(stringr)
strings <- c("2-CONTROL", "DAN-COLOR", "3M", "DIPLOMVEJ 373", "ABE 34 HUN")
pattern <- " \\d+ ?" # match free-standing integers
strings[!str_detect(strings, pattern)]
# [1] "2-CONTROL" "DAN-COLOR" "3M"
发布于 2018-06-02 05:31:47
否定逻辑似乎起作用了:
regexp <- "\\d{2,}"
x <- c("2-CONTROL", "DAN-COLOR", "3M", "DIPLOMVEJ 373", "ABE 34 HUN")
res <- x[!grepl(regexp, x)]
res
# "2-CONTROL" "DAN-COLOR" "3M"
https://stackoverflow.com/questions/50651160
复制相似问题