Как извлечь строку из предложения с помощью регулярных выражений в R? - PullRequest
0 голосов
/ 21 января 2019

Я хочу извлечь строки из предложения, используя регулярное выражение в R. И я новичок в R и не знаю, с чего начать или как это сделать?

string<-c(".\n                Written by\nJ-S-Golden            \n        
\n        \n         \n                Plot Summary\n    |\n        Plot 
Synopsis\n    \n        \n            Plot Keywords:\n wrongful 
imprisonment\n                        |\n escape from prison\n                        
|\n based on the works of stephen king\n                        |\n 
prison\n                        |\n voice over narration\n            | See 
All (296) »      \n        \n            Taglines:\nFear can hold you 
prisoner. Hope can set you free.        \n        \n")

У меня есть строка иЯ хочу в выводе:

Plot Keywords:
\n wrongful imprisonment\n
|\n escape from prison\n
|\n based on the works of stephen king\n                        
|\n prison\n                        
|\n voice over narration\n            
| See All (296) »      \n        \n

Я не знаю, как извлечь чистые данные из строки.Может кто-нибудь, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 21 января 2019

Вот решение, использующее базовую функцию R sub. Это соответствует (и включает) ведущий текст Plot Keywords:. Затем он использует закаленную точку, чтобы соответствовать любому символу до, но не включая первую следующую метку, за которой следует двоеточие.

sub("(?s).*(Plot Keywords:(?:(?![^: ]+:).)*).*", "\\1", string, perl=TRUE)

[1] "Plot Keywords:\n wrongful \nimprisonment\n
                    |\n escape from prison\n
                    \n|\n based on the works of
     stephen king\n
                    |\n \nprison\n                        |\n voice over narration\n
        | See \nAll (296) »      \n        \n            "

В данном конкретном случае демонстрация чистого регулярного выражения может быть более полезной, чем демонстрация R, поэтому вот ссылка на нее:

Демо

...