用stringr从文本块中提取

时间:2017-09-04 17:37:29

标签: r regex stringr

我正在尝试使用stringr包中的str_extract()来使用模式"(\\[){1}(.*)(\\]){1}"从方括号中提取文本。当括号组之间的文本用新行(即\n)分隔时,这可以正常工作。否则,我得到的文本块跨越多个括号。

所以当:

my_text <- "[Sed ut perspiciatis]  [unde omnis iste natus] error sit architecto beatae vitae dicta sunt explicabo. \n [Nemo] sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.  [consectetur], adipisci tempora incidunt ut \n [labore] et dolore magnam aliquam quaerat voluptatem. Ut consequatur, vel illum qui dolorem eum fugiat quo \n [voluptas nulla] pariatur?"

str_extract_all(my_text, "(\\[){1}(.*)(\\]){1}")

我明白了:

[[1]]
[1] "[Sed ut perspiciatis]  [unde omnis iste natus]"                                                      
[2] "[Nemo] sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.  [consectetur]"
[3] "[labore]"                                                                                            
[4] "[voluptas nulla]"       

虽然我想获得:

[[1]]
[1] "[Sed ut perspiciatis] "
[2] "[unde omnis iste natus]"                                                      
[3] "[Nemo]" 
[4] "[consectetur]"
[5] "[labore]"                                                                                            
[6] "[voluptas nulla]" 

我将如何做到这一点?

0 个答案:

没有答案