删除 scrapy 中的特殊字符 python
remove special character in scrapy python
我尝试删除以下文本之间的特殊字符:
sample_sample_sample_2.18.14
我尝试了以下模式来删除那些特殊字符:
item['xxxx'] = item['aaaa'].replace('_' '' ,'-' '')
我可以单独删除 _
个字符。
我尝试删除所有字符,例如:. , _ , - , ( , )
。
据我了解,您想从字符串中删除非字母数字字符。在这种情况下,列出您要保留的字符比尝试指定要删除的每个 "special" 个字符更有意义。
您可以使用 re.sub()
:
>>> import re
>>> s = "sample_sample_sample_2.18.14"
>>> re.sub(r'[^a-zA-Z0-9]', '', s)
'samplesamplesample21814'
这是删除 某些字符的解决方案。
>>> 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'
我尝试删除以下文本之间的特殊字符:
sample_sample_sample_2.18.14
我尝试了以下模式来删除那些特殊字符:
item['xxxx'] = item['aaaa'].replace('_' '' ,'-' '')
我可以单独删除 _
个字符。
我尝试删除所有字符,例如:. , _ , - , ( , )
。
据我了解,您想从字符串中删除非字母数字字符。在这种情况下,列出您要保留的字符比尝试指定要删除的每个 "special" 个字符更有意义。
您可以使用 re.sub()
:
>>> import re
>>> s = "sample_sample_sample_2.18.14"
>>> re.sub(r'[^a-zA-Z0-9]', '', s)
'samplesamplesample21814'
这是删除 某些字符的解决方案。
>>> 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'