首页 > 解决方案 > 如何删除或子集文本中的某些上下文?

问题描述

这是我的数据

data<- "line1\nline2\n\n\n\n\n         VICTIMS OF GUN VIOLENCE TO HOLD GUN TRAFFICKERS LIABLE\n\n  line3"

我想要五个连续的 "\n" 和两个连续的 "\n" 之间的文本:

“枪支暴力受害者追究枪支贩运者的责任”

我试过了

text-<str_split(data,"\n") 
str_subset(text,".*\n{5}\\s*(.*)\\s*\n{2}.*")

我得到:警告消息:在 stri_subset_regex(string, pattern, omit_na = TRUE, negate = negate, : 参数不是原子向量;强制

标签: rtext

解决方案


sub用于捕获 5'\n'和 2之间的文本的基本 R 选项'\n'

sub('.*\n{5}\\s*(.*)\\s*\n{2}.*', '\\1', data)
#[1] "VICTIMS OF GUN VIOLENCE TO HOLD GUN TRAFFICKERS LIABLE"

推荐阅读