我正在清理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)
但是它会推翻或不起作用。
任何帮助(以及我正在做错的解释以及替代方案的工作原理)都将非常感激。
答案 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