在R中,我如何创建匹配开始和结束字符串的正则表达式,忽略之间的所有内容?
具体来说,我怎样才能从下面开始,以" ./ xl / worksheets"开头的字符串。并以" .xml"?
结束myfiles <- c("./_rels/.rels", "./xl/_rels/workbook.xml.rels",
"./xl/workbook.xml", "./xl/worksheets/sheet4.xml",
"./xl/worksheets/_rels/sheet1.xml.rels", "./xl/worksheets/sheet2.xml",
"./xl/printerSettings/printerSettings11.bin")
我成功了
grep("^\\./xl/worksheets", myfiles) # returns 4 5 6
grep("\\.xml$", myfiles) # returns 3 4 6
当然,我可以这样做:
which(grepl("^\\./xl/worksheets", myfiles) &
grepl("\\.xml$", myfiles)) # returns 4 6
但是,我无法弄清楚如何在两种模式之间制作通配符。
答案 0 :(得分:5)
只需在开头和结尾之间添加匹配所有模式xml.etree.ElementTree
即可:
$ awk '{rec = rec $0 ORS} /{content-end}/{if (++cnt == 2) printf "%s", rec; rec=""}' file
{content-start}
abc2
def2
ghi2
{content-end}