【发布时间】:2021-10-22 09:24:31
【问题描述】:
我正在尝试使用 stringr 包中的 str_detect 在 R 中匹配以下内容。
我想检测给定的字符串是否在'and'或'&'之后或之前。例如,在:
string_1<-"A and B"
string_2<-"A B"
string_3<-"B and A"
string_4<-"A B and C"
我希望 str_detect(string_X) 对于 string_1、string_3 和 string_4 为 FALSE,但对于 string_2 为 TRUE。
我试过了:
str_detect(string_X,paste0(".*(?<!and |& )","A"))==TRUE & str_detect(string_X,paste0(".*","A","(?! and| &).*"))==TRUE)
我使用 paste0 是因为我想在不同的字符串上运行它。这适用于除 4 之外的所有情况。我是正则表达式的新手,而且看起来也不是很优雅。有没有更通用的解决方案?
谢谢。
【问题讨论】:
标签: r regex string pattern-matching regex-lookarounds