Python - 正则表达式替换所有非alpha-numerics除了句点/小数点?

时间:2014-03-12 19:48:59

标签: python regex

所以我需要从字符串中取出所有非字母数字字符,所以我这样做了:

import re
re.sub(r'\W+', '', "He&y wha*t i%%s 4.6 plu^s 6.4?")

它变成了:

"Heywhatis46plus46"

现在该怎么做,但不删除任何小数点? (我知道我似乎也需要空格和标点符号,但我需要的只是句号) 所以它变成了:

"Heywhatis4.6plus4.6"

2 个答案:

答案 0 :(得分:0)

print re.sub(r'[^\w.]+', '', "He&y wha*t i%%s 4.6 plu^s 6.4?")

答案 1 :(得分:0)

import re

print re.sub('([^\w.]|(?<!\d)\.(?!\d))+',
             '',
             "He&y wh...a*t i%%s 4.6 plu^s 6.4?")

结果

Heywhatis4.6plus6.4