2014-04-02 7 views
6

1 Sweave haben einige Ausdrücke im Text unter einigen .Rnw Dateien enthalten sind, zu finden. Sweave der Absatz unter zwei Ausdrücke enthält. Was für reguläre Ausdrücke verwenden kann, den R-Code 1 für jeden Ausdruck zu finden. So sollte der reguläre Ausdruck der Lage sein, mean(mtcars$mpg) zu finden und/oder summary(lm(mpg ~ hp + drat, mtcars))Ein regulärer Ausdruck, den Code in Sweave Ausdruck

Lorem ipsum Karotten, verbesserte Rabatte, aber sie tun occaecat Zeit und Vitalität, wie Arbeit und Fettleibigkeit. \ {Sexpr Mittelwert (mtcars $ mpg)}. Im Laufe der Jahre werde ich kommen, der aliquip nostrud wird aus ihr den Vorteil der Übung, so dass Stimulus Anstrengungen, wenn der Schulbezirk und Langlebigkeit. Möchten Sie einen Schmerz im cupidatat cillum sein hat in der Duis et dolore magna fliehen kritisiert wurde produziert keine resultierende Freude. Excepteur Schwarzen sind cupidatat \ {Sexpr Zusammenfassung (lm (mpg * HP + drat, mtcars))} excepteur sie im Unrecht sind, dass sie weich Geister verlassen ihre Verantwortung wird sich ändern ist.

Antwort

5

die Regex (?<=\\Sexpr{).+?(?=}) wäre über lazily alles zwischen zwei lookarounds passen

  • (?<=\\Sexpr{) Teil positiv ist positiv Look-Ahead-Lookbehind
  • (?=})
  • .+? wird.

Einlesesteuervorrichtung mehr hier. http://www.regular-expressions.info/lookaround.html

z.B. R (da Sie R markiert)

txt <- 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. \\Sexpr{mean(mtcars$mpg)}. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat \\Sexpr{summary(lm(mpg ~ hp + drat, mtcars))} non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.' 

regmatches(txt, gregexpr('(?<=\\Sexpr{).+?(?=})', txt, perl=T)) 

## [[1]] 
## [1] "mean(mtcars$mpg)"      "summary(lm(mpg ~ hp + drat, mtcars))"