删除所有内容,但留下数字和点

时间:2014-09-27 06:13:14

标签: python string python-2.7

此代码旨在删除所有内容,但保留数字

a = "1.1.1.1"
b = re.sub('[^0-9]', '', a)

但我也希望保留点数。

3 个答案:

答案 0 :(得分:2)

不使用正则表达式:

>>> ''.join(c for c in a if c.isdigit() or c == '.')
'1.1.1.1'
>>> a = 'hello.1.number'
>>> ''.join(c for c in a if c.isdigit() or c == '.')
'.1.'

答案 1 :(得分:2)

>>> a='1.1.1.1'
>>> b = re.sub('[^0-9\.]', '', a)
>>> b
'1.1.1.1'
>>> a='comp.languages.python'
>>> b = re.sub('[^0-9.]', '', a)
>>> b
'..'

[]表示只匹配这些字符。

[^]表示匹配除了这些字符之外的所有字符。

0-9是0123456789

.是。但要小心。因为在[]之外,它通常用于匹配任何单个字符

答案 2 :(得分:1)

试试

a = 1.1.1.1
b = re.sub('[^\d\.]', '', a)

代替。 0-9可以替换为\d,因为它匹配所有数字字符,\.是必需的,因为.字符是通配符。