在\ n \ n \ n \ n之间的文本中修剪图案

时间:2016-07-28 00:17:31

标签: regex r nlp data-cleaning

我正在清理R中的文字。我的文字格式为

  

但是他无法避免主题FULLSTOP \ n \ n \ n \ n \ n \ n \ n相似的部分   由作者\ n \ n \ nlife很棒13022015 \ nreal men don tath乳蛋饼   22042013 \ n回到未来01072012 \ n \ n \ n \ n并且他接受了   星期三晚上在这里举行集会希拉里克林顿周围的民主人士   FULLSTOP奥巴马先生将重新考虑他自己的指导国家的承诺   进入一个和解与团结的时代,回归主题   这推动了他不可思议的崛起,但这看起来更加明显   今天到达FULLSTOP \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n在此次会议上为此制定赌注   一个分裂的国家\ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n \ n   关于种族分裂,他们的疯狂感到震惊和悲伤   orlando或者好先生FULLSTOP

我正试图摆脱

  

\ n \ n \ n \ n \ n \ n相似的片段作者\ n \ n \ nlife很棒13022015 \ nreal men don t eath quiche 22042013 \ nback to the future 01072012 \ n \ n \ n \ n

所以要获得像

这样的东西
  

但是当他走上舞台时,他无法避开主题FULLSTOP   希拉里克林顿先生周三晚上集会民主党人   FULLSTOP奥巴马将重新考虑他自己的指导国家的承诺   一个和解与团结的时代,回归那些主题   推动了他不可思议的上升,但这似乎更加遥不可及   今天FULLSTOP \ n \ n \ n \ n \ nobama在会议上列出了赌注   分裂的国家\ n \ n \ n \ n \ n我们对政治僵局感到沮丧   种族分歧的担忧因疯狂而感到震惊和悲伤   orlando或者好先生FULLSTOP

我正在尝试像

这样的东西

gsub("\\\n{3,}(similar pieces)?.*\\\n{3,}", "", my_string)gsub("\\\n{3,}(similar pieces)?.*?\\\n{3,}", "", my_string)

但是它会推翻或不起作用。

任何帮助(以及我正在做错的解释以及替代方案的工作原理)都将非常感激。

1 个答案:

答案 0 :(得分:2)

您需要匹配前5个换行符号与前4个换行符号之间的所有内容。

我建议使用 *\n{5}.*?\n{4} *正则表达式:

  • * - 零个或多个文字空间
  • \n{5} - 5个换行符号
  • .*? - 零个或多个字符直到第一个......
  • \n{4} - 4个LF符号
  • * - 零个或多个文字空格(仅用于修剪匹配)

并替换为空格。

使用sub,因为您只需要1次替换:

sub(" *\n{5}.*?\n{4} *", " ", s)

请参阅R demo