Я хочу извлечь информацию из серии файлов R .Rd. Я хочу примеры (хотя это может быть любой тег tex) и вы хотите извлечь между тегом левого текса и закрывающей фигурной скобкой. Я хочу также захватить закрывающиеся фигурные скобки, которые каким-то образом ускользнули ([}]
или \\}
, или каким-либо образом я не задумываюсь).Regex-grab между: правая граница не экранирована
Так вот у меня есть образец и моя попытка извлечь, но он захватывает только ДО первого спасся фигурную скобку:
## fake tex
x <- "Here we go \\example{ x <- 6\ngsub(\"\\}\", \"\", x, perl=TRUE)\ngsub(\"[}]\", \"\", x, perl=TRUE)\n}\n\\end{here}"
## regex to extract
regmatches(x, gregexpr("(?<=\\\\example\\{)([^}]*)(?=\\})", x, perl = TRUE))
Выходной ток
[[1]]
[1] " x <- 6\ngsub(\"\\"
требуемый выход
" x <- 6\ngsub(\"\\}\", \"\", x, perl=TRUE)\ngsub(\"[}]\", \"\", x, perl=TRUE)\n"
Хорошее мышление. Я посмотрю, если другие придумают дополнительные ответы или критические замечания к этому подходу. +1 –
Было бы здорово, если бы существовал способ фактически совместить то, что вы хотите, в одном вызове регулярного выражения без каких-либо обходов ... – Stibu