给出:
"kuku": "kdfjsfgsljfddnlfdsf"
"bubu": "slfjsdjlkfndvsdl;nsdf;vlankvdfs;lkndkfv"
"title": "dflkbjvndjlvbdknbdlkbvjndlkfdnbdlkbjdnb"
"tutu": "svfrol"
"lala": "dbd4431"
"title": "dfvbdfv"
我想提取所有以“ title”开头的行。
请告知我该怎么做(我正在使用R,并且需要一个正则表达式)。
我正在尝试:
(["'])(title)\1:
并尝试使用它。
答案 0 :(得分:2)
您可以使用类似的内容:
^"title":.*$
使用https://regex101.com输入后,它看起来像这样:
说明:
^
表示行首
"title":
只是字面意思
.
表示任意字符
*
表示它可以发生零次或更多次
$
表示行尾
答案 1 :(得分:2)
一种选择是将文本文件读取为R中的数据框
df <- read.table(text = '"kuku": "kdfjsfgsljfddnlfdsf"
"bubu": "slfjsdjlkfndvsdl;nsdf;vlankvdfs;lkndkfv"
"title": "dflkbjvndjlvbdknbdlkbvjndlkfdnbdlkbjdnb"
"tutu": "svfrol"
"lala": "dbd4431"
"title": "dfvbdfv"', sep = ":", stringsAsFactors = FALSE, strip.white = TRUE)
,然后选择第一列以"title"
开头的行
df[grepl("^title", df$V1), ]
# V1 V2
#3 title dflkbjvndjlvbdknbdlkbvjndlkfdnbdlkbjdnb
#6 title dfvbdfv
如果您希望将其作为原始字符串而不是不同的列,则可以将它们paste
退回
do.call(paste, c(df[grepl("^title", df$V1), ], sep = ":"))
#[1] "title:dflkbjvndjlvbdknbdlkbvjndlkfdnbdlkbjdnb" "title:dfvbdfv"