删除scrapy python中的特殊字符

时间:2015-06-08 13:17:50

标签: python regex python-2.7 web-scraping scrapy

我尝试删除以下文字之间的特殊字符:

sample_sample_sample_2.18.14

我尝试使用以下模式删除这些特殊字符:

item['xxxx'] = item['aaaa'].replace('_' '' ,'-' '')

我可以单独删除_个字符。

我尝试删除所有字符,例如:. , _ , - , ( , )

2 个答案:

答案 0 :(得分:4)

根据我的理解,您希望从字符串中删除非字母数字字符。在这种情况下,列出您想要离开的字符更有意义,而不是试图指定每个"特殊"要删除的字符。

您可以使用re.sub()

>>> import re
>>> s = "sample_sample_sample_2.18.14"
>>> re.sub(r'[^a-zA-Z0-9]', '', s)
'samplesamplesample21814'

答案 1 :(得分:2)

以下是删除某些字符的解决方案。

>>> text = 'sample_sample_sample_2.18.14'
>>> ''.join(c for c in text if c not in '._-()')
'samplesamplesample21814'

另一个解决方案是保留某些字符,但这取决于你想要做什么。

更加速度优化的等价物:

Python 2:

>>> text.translate(None, '._-()')
'samplesamplesample21814'

Python 3:

>>> text.translate(str.maketrans('', '', '._-()'))
'samplesamplesample21814'