Извлечь строки, которые начинаются с определенного предопределенного регулярного выражения? - PullRequest
0 голосов
/ 05 мая 2019

Дано:

"kuku": "kdfjsfgsljfddnlfdsf"
"bubu": "slfjsdjlkfndvsdl;nsdf;vlankvdfs;lkndkfv"
"title": "dflkbjvndjlvbdknbdlkbvjndlkfdnbdlkbjdnb"
"tutu": "svfrol"
"lala": "dbd4431"
"title": "dfvbdfv"

Я хочу извлечь все строки, начинающиеся с "title".

Пожалуйста, сообщите, как я могу это сделать (я использую R и хочу регулярное выражение).

Я пытаюсь это:

(["'])(title)\1: 

и пытаюсь поиграть с ним.

Ответы [ 2 ]

2 голосов
/ 05 мая 2019

Один из вариантов - прочитать текстовый файл как кадр данных в 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"    
2 голосов
/ 05 мая 2019

Вы можете использовать что-то вроде:

^"title":.*$

При вводе с помощью https://regex101.com это выглядит так:

enter image description here

Пояснение:

^ означает начало строки

"title": буквально

. означает произвольный символ

* означает, что это может произойти ноль или более раз

$ означает конец строки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...