如何在python

时间:2017-02-09 17:36:28

标签: python regex

我使用 BeautifulSoup 来提取网站,我得到了文字需求。问题是我需要删除的文本中有“\ n”字符。

示例输出文本:

  

\ n我去看了一部关于这部电影的预先放映   在120分钟的慵懒的线条,无意识的情节,和那种   “The Postman”中最令人失望的表演之一   我们这个时代的电影迷惘的恶性剧本。但我是   震惊。\ n惊讶地发现一部由科斯特纳主演的电影吸引了大家   观众的灵魂。感到震惊的是Ashton Kutcher可以采取行动   严重\ nrole。震惊的是,一部电影主演两人实际参与和   抓住了自己的情绪。不是因为'罗宾汉'我见过这个   科斯特纳:完全没有深度和复​​杂的情感。库彻似乎有   调整了他在“蝴蝶效应”中扮演的严肃\ n。   这两位演员以严肃,专注的态度进入了这部电影   在我所想的是我所拍摄的最好的电影之一   今年见过。不,它不是一部非常有用的电影。这不是史诗,   或深刻的社会评论\ nfilm。相反,它是一个关于a的故事   简单的主题,以某种方式照亮\ nthat将观众带入一个   更高层次的同理心而不是思想\ npossible。那就是我所想的   好的电影制作是我和我一个人对此印象深刻   工作。喝彩!\ n

我尝试了以下方法删除新行。

方法1 - 正则表达式

x = review_text.get_text()
y = re.sub(r'(\n)','',x)

方法2 - rstrip

x = review_text.get_text()
x.rstrip()

这两种方法都不适用于我。

当我使用分割

x = review_text.get_text()
print(x.split("\n"),"\n\n")

输出如下

  

['\ n我去看这部电影的预先放映,以为我是这样的   在120分钟的冷静线条,无意识的情节,以及   “The Postman”中最令人沮丧的表演之一   我们这个时代的电影迷惘的恶性剧本。但我是   震惊。\ n惊讶地找到一部由科斯特纳主演的电影   观众的灵魂。 Ashton Kutcher可以采取行动感到震惊   如此严肃的\ nrole。震惊的是,一部电影实际上都是主演   订婚并抓住了自己的情感。不是因为'罗宾汉'   我看到了这个科斯特纳:全面的深度和复杂的情感。库奇   似乎已经调整了与他一起玩的严重\ n   “蝴蝶效应”。这两位演员进入了这部影片   认真,专注的态度,在我所想的是什么   我今年见过的最好的电影之一。不,它不是\ nOscar   有价值的电影。这不是史诗般的,也不是深刻的社交   评论\ nfilm。相反,它是一个关于一个简单主题的故事,   以某种方式照亮,使观众达到更高的水平   同情而不是思想\ nsposible。这就是我认为好的电影制作   是的,我是一个人,对这项工作印象深刻。喝彩!\ N']

如何从文本中删除新行。

谢谢。

3 个答案:

答案 0 :(得分:2)

你是不是它的'\n'字符而不是'\\n'两个字符序列?如果它' \ n',x.rstrip()应该有效,否则请尝试x.replace('\\n','')

答案 1 :(得分:1)

如果s是,则字符串如:

\nNo, its not an\nOscar worthy movie. It's not an epic, or a profound social commentary\nfilm. Rather, its a story about a simple topic, illuminated in a way\nthat brings that audience to a higher level of empathy than thought\npossible. That's what I think good film-making is and I for one am\nthroughly impressed by this work. Bravo!\n

然后s.strip()将删除尾随和前导空格,包括换行符:

 No, its not an\nOscar worthy movie. It's not an epic, or a profound social commentary\nfilm. Rather, its a story about a simple topic, illuminated in a way\nthat brings that audience to a higher level of empathy than thought\npossible. That's what I think good film-making is and I for one am\nthroughly impressed by this work. Bravo!

要删除所有其他\ n,请将其替换为" "对于空间或""完全删除

s.replace("\n", "").strip()

No, its not an Oscar worthy movie. It's not an epic, or a profound social commentary film. Rather, its a story about a simple topic, illuminated in a way that brings that audience to a higher level of empathy than thought possible. That's what I think good film-making is and I for one am throughly impressed by this work. Bravo!

答案 2 :(得分:0)

您应该可以使用x=x.replace("\n", "")取出换行符。