python从字符串中删除一些单词和空格

时间:2017-09-02 22:10:43

标签: python regex string

我的列表看起来像这样

['Drexel University,\r\n                  Antoinette Westphal COMAD,\r\n                  Animation & Visual Effects,\r\n                  Undergraduate Program']

我想删除大学名称,即“Drexel大学”,以及\ r \ n之后的空间(包括那些空白区域)在其他单词前面。我想正则表达式是个好主意。但我不知道如何用正则表达式排除一些单词。

好吧,我已经有了解决方案。但如果有人能提供正则表达式版本,我将不胜感激。

3 个答案:

答案 0 :(得分:0)

您可以使用.split()按空格分割,然后按以下方式对列表进行切片:

>>> l = ['Drexel University,\r\n                  Antoinette Westphal COMAD,\r\n                  Animation & Visual Effects,\r\n                  Undergraduate Program']
>>> l = l[0].split()[2:]
>>> l
['Antoinette', 'Westphal', 'COMAD,', 'Animation', '&', 'Visual', 'Effects,', 'Undergraduate', 'Program']

如果您希望将其作为每个单词之间有空格的字符串,则可以使用l = ' '.join(l)

答案 1 :(得分:0)

要将一个文本列表转换为字符串列表,您可以执行以下操作:

l = ['Drexel University,\r\n                  Antoinette Westphal COMAD,\r\n                  Animation & Visual Effects,\r\n                  Undergraduate Program']

text = l[0]
lines = [line.strip().strip(',') for line in text.splitlines()]

在这里,我提取了列表的第一项。 然后我将第一个项目拆分为行,对于每一行,我使用strip删除空格和“,”。

结果是:

['Drexel University', 'Antoinette Westphal COMAD',
 'Animation & Visual Effects', 'Undergraduate Program']

要删除列表的第一个元素,您可以执行以下操作:

lines.pop(0)

编辑:RegEx

使用RegEx,您可以按如下方式拆分文本:

import re

text = l[0]
lines = re.split(r',\s+', text)

答案 2 :(得分:0)

如果您打算定期为其他单词做这件事。我会稍微概括一下。

从您的数据:

l = ['Drexel University,\r\n                  Antoinette Westphal COMAD,\r\n                  Animation & Visual Effects,\r\n                  Undergraduate Program']

将字符串分配给变量:

l = l[0]

定义您要忽略的键列表:

ignore_keys = ["Drexel University,","\n","\r","  "]

循环键以忽略并将其替换为空白

for ignore in ignore_keys:
    l = l.replace(ignore,"")

然后取决于您希望结果如何表示:

列表 - l.split(",") 作为字符串 - l

结果:

print(l.split(","))
['Antoinette Westphal COMAD', 'Animation & Visual Effects', 'Undergraduate Program']

print(l)
'Antoinette Westphal COMAD,Animation & Visual Effects,Undergraduate Program'