删除scrapy python中的特殊字符

Posted

技术标签:

【中文标题】删除scrapy python中的特殊字符【英文标题】:remove special character in scrapy python 【发布时间】:2015-08-22 23:34:18 【问题描述】:

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

sample_sample_sample_2.18.14

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

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

我可以单独删除_ 字符。

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

【问题讨论】:

您希望输出为samplesamplesample21814 【参考方案1】:

据我了解,您想从字符串中删除非字母数字字符。在这种情况下,列出您想要保留的字符而不是尝试指定您想要删除的每个“特殊”字符会更有意义。

你可以使用re.sub():

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

【讨论】:

【参考方案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'

【讨论】:

以上是关于删除scrapy python中的特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式特殊字符scrapy应用

python字符串中怎么忽略空格前面的数字

如何使用带有编解码器值的 python .replace 来删除特殊字符?

scrapy 关于特殊字符的处理

在 Python 中删除字符串中的多余字符

从R中的字符串中删除所有特殊字符?