2014-04-02 31 views
6

1 sweave bazı .Rnw dosyalar arasında metninde yer alan bazı ifadeler var Sweave ifadede kodunu bulmak için. paragraf aşağıda iki ifadeleri içeriyor Sweave. Düzenli Ne ifadesi, her ifadesi için R kodunu 1 bulmak için kullanabilirsiniz. Yani düzenli ifade mean(mtcars$mpg) ve/veyaNormal bir ifade

summary(lm(mpg ~ hp + drat, mtcars)) lorem ipsum havuç, gelişmiş indirimler bulmak mümkün olmalıdır, ancak bu tür emek ve obezite gibi, occaecat zaman ve canlılığını yok. \ {Sexpr ortalama (mtcars $ mpg)}. Yıllar boyunca, onun dışında egzersiz avantajını aliquip nostrud kim, gel, böylece uyarıcı çabaları okul bölgesi ve uzun ömürlü olmadığını olacaktır. cupidatat cillum bir ağrı kaçmak Duis et dolore magna eleştirilmiştir olmak ister hayır çıkan zevk üretir. Excepteur siyahlar \ {Sexpr özeti (lm (mpg * HP + drat, mtcars))} excepteur onlar yumuşak beyinler sorumlulukları değişecek terk olduğunu, hatalı olan cupidatat.

cevap

5

regex (?<=\\Sexpr{).+?(?=})

  • (?<=\\Sexpr{) kısım pozitif olacağını pozitif ileri yönlü lazily Yukarıdaki iki lookarounds arasındaki her şeyi maç olacak
  • (?=})
  • .+?
  • Geriye İlerleme olduğunu. Buradan daha fazla

Readup. http://www.regular-expressions.info/lookaround.html

ör R (Eğer R etiketli beri)

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))"