是否有删除部分字符串,但 R 中有异常

Is there to remove part of string with exception in R

库(stringr)

我有一些文本想使用 string_remove_all 清理,但我似乎没有得到预期的结果。我想删除所有其他后缀,但带有 _other

的字符串除外
# Test text
testregex <- c("d1_1", "d2_other", "d1_1_2", "test", "d5_extra", "a22_10")

# Code 
str_remove_all(testregex, "_[^other]")

# Expected results

expected <- c("d1", "d2_other", "d1", "test", "d5", "a22")

您可以使用 sub_other(?!_other) 进行负面展望,并使用 _.* 删除 _ 中的所有内容。

sub("(?!_other)_.*", "", testregex, perl=TRUE)
#stringr::str_remove_all(testregex, "(?!_other)_.*") #Alternative
#[1] "d1"       "d2_other" "d1"       "test"     "d5"       "a22"