如何从R中的文本文件中提取特定段落

时间:2015-02-23 14:38:23

标签: regex r rstudio text-processing

我使用R studio处理文本文件,文本文件的格式如下:

*

A name
A date
A referene number

A text....bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla


*

A name
A date
A reference number

Another text....bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla

*

和一遍又一遍的相同模式。

我想只获取文本,并将每个文本存储为列表中的元素。我做了A = grep(" \ *",myText)来获得*所在的行数。我希望在文件中循环以获得从A [1] +6开始到A [2] -1结束的文本。

1 个答案:

答案 0 :(得分:0)

替换" / tmp / out"用你的文件名

txt <- readLines("/tmp/out")
lns <- data.frame(beg=which(grepl("beginning of the paragraph i want",txt)),
                  end=which(grepl("end of the paragraph i want",txt)))
txt.2 <- lapply(seq_along(lns$beg),function(l){
                         paste(txt[seq(from=lns$beg[l],
                                       to=lns$end[l],
                                       by=1)],collapse=" ")
                                       })
txt.2

# or for referencing by the star, the lns is obtained this way
lns <- data.frame(beg=rev(rev(grep("[*]",txt) + 6)[-1]),
              end=(grep("[*]",txt) - 2)[-1])