python - 如何从 python 列表中的字符串中删除 \n1、\n2、\n3 等?
问题描述
我创建了一个 python 列表question_text_list,其中包含从 csv 文件中检索到的字符串(文本)
['text1, 'text2...'text100000']
列表中的文本之一如下所示
'在星际迷航 2013 中,为什么他们会\n\n剧透\n剧透\n剧透\n剧透\n\n1让翘曲看起来有点像超空间跳跃\n2这些明亮的粒子一跃而起是什么意思\n3为什么在这个世界上他们有没有可能让两个实体在曲速空间中在不同的跳跃中做出反应\n4为什么史波克会对这部电影产生情绪\n5把企业藏在水下有什么意义\n6当他们被黑暗的船拦截时,他们为什么会在什么时候到达地球?他们离这里很远,似乎不记得他们翘曲到地球的场景\n7这艘船是如何进入地球大气层的,当时它甚至还没有进入轨道\n8当斯科蒂打开黑色飞船的门时,派克和可汗怎么没有减速'
我应用了以下命令,希望我可以删除 \n1, \n2..\n8..and 也 \nspoilers
question_text_list = [x.replace('\n*',' ').replace('\nspoilers','') for x in question_text_list]
我得到以下输出,这是不可取的,因为我仍然看到 \n1, \n2 删除 \n 但没有看到尾随数字,如 '1','2'
'在星际迷航 2013 中,为什么他们 1 让翘曲看起来有点像超空间跳跃 2 世界上那些明亮的粒子一跳起来是什么意思 3 为什么他们让两个实体可以在翘曲空间中在不同的跳跃中做出反应 4 为什么史波克对这部电影产生了情绪5隐藏企业在水下的意义是什么6当他们被黑暗的船拦截时他们是如何在远离她时到达地球的似乎不记得他们扭曲到地球的场景7船是如何进入地球大气层的当它甚至不在轨道8时,当斯科蒂打开黑船的门时,派克和可汗怎么没有减速?
问题- 如何在 Python 中删除所有带有尾随数字的换行符,如 \n1,\n2...?
解决方案
一个简单的正则表达式就可以解决问题:
import re
text = 'in star trek 2013 why did they \n\nspoilers ...' # leaving out for brevity
article = re.sub(r'\n[0-9]?(spoilers)?', '', x)
正则表达式\n[0-9]?(spoilers)?
说:
\n
=> 匹配\n
[0-9]?
=> 匹配任何数字 0 到 9,但它不必存在(?
部分)
(spoilers)?
=> 匹配整个单词spoilers
,但不一定存在
推荐阅读
- c++ - 如何正确使用管道将数据从子进程传输到父进程?
- r - 预测模型给出奇怪的 MAPE 值,有人可以告诉我这是否正确吗?
- android - 如何从 inputConnection 中检测和删除 unicode 序列表情符号?
- javascript - 变量不会递增并注册其新值
- python - 用 windows 运行 pypy
- c# - 在 Unity 中获取任何对撞机对象的方法的最有效方法是什么?
- python - 如何根据列表值匹配条件对字典键进行分组?
- ruby-on-rails - 在 Rails 中删除 turbolink 后如何修复控制器重定向
- swift - 为什么 Swift 结构中的私有 var 在该结构的 #if'd init 中不可用?
- java - 我的适配器在布局中,即使它被片段替换