我需要从字符串中删除所有特殊字符,标点符号和空格,以便我只有字母和数字。
当前回答
TLDR
我计算了提供的答案。
import re
re.sub('\W+','', string)
通常比上一个最快的答案快3倍。
使用此选项时应谨慎。一些特殊字符(如ø)不能使用这种方法进行条纹。
在看到这个之后,我有兴趣通过找出在最少的时间内执行的答案来扩展提供的答案,所以我通过timeit检查了一些建议的答案,并对照两个示例字符串:
string1 = '特殊$#!字符空格888323' '枫糖浆多少钱? '20.99美元吗?这太荒谬了!!”
示例1
'.join(e for e in string if e.isalnum())
string1 - Result: 10.7061979771 string2 - Result: 7.78372597694
示例2
import re
re.sub('[^A-Za-z0-9]+', '', string)
string1 - Result: 7.10785102844 string2 - Result: 4.12814903259
示例3
import re
re.sub('\W+','', string)
string1 - Result: 3.11899876595 string2 - Result: 2.78014397621
以上结果是由以下平均值的最低返回结果的乘积:重复(3,2000000)
例3可以比例1快3倍。
其他回答
#!/usr/bin/python
import re
strs = "how much for the maple syrup? $20.99? That's ricidulous!!!"
print strs
nstr = re.sub(r'[?|$|.|!]',r'',strs)
print nstr
nestr = re.sub(r'[^a-zA-Z0-9 ]',r'',nstr)
print nestr
你可以添加更多的特殊字符,这将被“意味着什么,即他们将被删除”所取代。
字符串。标点符号包含以下字符:
'!"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~'
可以使用translate和maketrans函数将标点符号映射为空值(替换)
import string
'This, is. A test!'.translate(str.maketrans('', '', string.punctuation))
输出:
'This is A test'
TLDR
我计算了提供的答案。
import re
re.sub('\W+','', string)
通常比上一个最快的答案快3倍。
使用此选项时应谨慎。一些特殊字符(如ø)不能使用这种方法进行条纹。
在看到这个之后,我有兴趣通过找出在最少的时间内执行的答案来扩展提供的答案,所以我通过timeit检查了一些建议的答案,并对照两个示例字符串:
string1 = '特殊$#!字符空格888323' '枫糖浆多少钱? '20.99美元吗?这太荒谬了!!”
示例1
'.join(e for e in string if e.isalnum())
string1 - Result: 10.7061979771 string2 - Result: 7.78372597694
示例2
import re
re.sub('[^A-Za-z0-9]+', '', string)
string1 - Result: 7.10785102844 string2 - Result: 4.12814903259
示例3
import re
re.sub('\W+','', string)
string1 - Result: 3.11899876595 string2 - Result: 2.78014397621
以上结果是由以下平均值的最低返回结果的乘积:重复(3,2000000)
例3可以比例1快3倍。
下面是一个正则表达式,用于匹配不是字母或数字的字符串:
[^A-Za-z0-9]+
下面是执行正则表达式替换的Python命令:
re.sub('[^A-Za-z0-9]+', '', mystring)
使用翻译:
import string
def clean(instr):
return instr.translate(None, string.punctuation + ' ')
警告:仅适用于ascii字符串。
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 将旋转的xtick标签与各自的xtick对齐
- Printf与std::字符串?
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if