У меня есть эта строка:Как извлечь текст между котировками в R
"MYDATA[, \"TYUO\"]"
Как извлечь текст между кавычками? Итак, результат всего TYUO
?
У меня есть эта строка:Как извлечь текст между котировками в R
"MYDATA[, \"TYUO\"]"
Как извлечь текст между кавычками? Итак, результат всего TYUO
?
Использование stringi
с опережающим просмотром и просмотром назад:
> stringi::stri_extract_all_regex(s, '(?<=").*?(?=")')
qdapRegex «s (я в соавторство этого пакета с Джейсоном Греем акой @hwnd) rm_between
функции рождена для этого:
x <- c("MYDATA[, \"TYUO\"]", 'a "second" with "multiple" quotes')
library(qdapRegex)
rm_between(x, '"', '"', extract=TRUE)
## [[1]]
## [1] "TYUO"
##
## [[2]]
## [1] "second" "multiple"
EDIT
@BenBolker попросил базу R. Это не так хорошо, как я надеялся, но будет сделать это в базе R:
lapply(regmatches(x, gregexpr('(\").*?(\")', x, perl = TRUE)), function(y) gsub("^\"|\"$", "", y))
## [[1]]
## [1] "TYUO"
##
## [[2]]
## [1] "second" "multiple"
мне не нравится вырежут ведущие завершающие кавычки с lapply
gsub
но попробовать использовать стандартный предпросмотр/просмотр назад результат не то, что мы хотим: ('* "(*)." *'., "\\ 1", х)
regmatches(x, gregexpr("(?<=\")(.*?)(?=\")", x, perl = TRUE))
## [[1]]
## [1] "TYUO"
##
## [[2]]
## [1] "second" " with " "multiple"
Что-то вроде '' подразделов, может быть, или для более хорошей печати 'кота (суб ('. * "(. *)". *', "\\ 1", x)) ' –
Как насчет регулярного выражения? – user3022875
Это регулярное выражение, нет? – Frank