R语言如何删除文本中开头空格≥3的行并实现列表转字符
需求实现方案
解决列表转字符的问题
stringr::str_split()返回列表是默认支持向量化输入的设计,如果你是对单个字符串做拆分,直接提取列表的第一个元素就能得到字符类型的向量:
# 拆分字符串得到字符向量 text <- str_split(data, "\n")[[1]]
接下来你就可以按规则筛选行:
# 仅保留开头空格数≤2的行 filtered_text <- text[!grepl("^\\s{3,}", text)] # 如果需要将筛选后的行重新拼接为单个字符串,使用paste result <- paste(filtered_text, collapse = "\n")
打印result就能得到你预期的输出,如果需要去掉首尾多余的空行和空格,可以再加一步trimws(result),就能得到精确匹配你预期的"as follows:"结果。
更简洁的一步实现方案
你也可以不用拆分字符串,直接通过正则替换删除所有开头空格≥3的行,代码更短:
result <- gsub("\\n\\s{3,}[^\n]*", "", data) |> trimws()
内容的提问来源于stack exchange,提问作者Foulball
相关产品推荐
相关产品推荐

