我有一个字符串,我试图从中提取关键字之前的术语。
str = "This is a <Keyword>(-)Controlled design"
关键字和受控之间可以有空格或“-”。我需要提取之前的“受控”。在 Perl 中,我使用以下正则表达式:
/(\w+)[- ]controlled/i)
在处理反斜杠和设置后,我在 R 中尝试相同的操作perl=TRUE
。但它不起作用。如何使用这个表达式来提取 R 中的?是否有我可以使用的替代表达式/库?
在此先感谢,西马克
使用这样的东西是否足够好gsub
?
str <- "This is a keyword-Controlled design"
gsub("(.+\\s)?(\\w+)(\\s|-)(Controlled).+","\\2",str)
#[1] "keyword"
gsub("(.+\\s)?(\\w+)(\\s|-)(Controlled).+","\\2",str)
#[1] "keyword"
而且因为正则表达式不是全部和全部:
spl <- unlist(strsplit(str,"[-| ]"))
spl[which(spl=="Controlled")-1]
#[1] "keyword"
或者,您可以使用str_match
stringr package。
> library(stringr)
> str <- "This is a keyword-Controlled design"
> str_match(str, "(?i)(\\w+)[- ]controlled")[2]
[1] "keyword"