python 提取字符串中的数字

有一个字符串‘speed=210,angle=150',我想提取210和150这两个数字,需要怎么写?

使用正则表达式,用法如下:

## 总结

## ^ 匹配字符串的开始。

## $ 匹配字符串的结尾。

## \b 匹配一个单词的边界。

## \d 匹配任意数字。

## \D 匹配任意非数字字符。

## x? 匹配一个可选的 x 字符 (换言之,它匹配 1 次或者 0 次 x 字符)。

## x* 匹配0次或者多次 x 字符。

## x+ 匹配1次或者多次 x 字符。

## x{n,m} 匹配 x 字符,至少 n 次,至多 m 次。

## (a|b|c) 要么匹配 a,要么匹配 b,要么匹配 c。## (x) 一般情况下表示一个记忆组 (remembered group)。可以利用 re.search 函数返回对象的 groups() 函数获取它的值。

## 正则表达式中的点号通常意味着 “匹配任意单字符”


扩展资料

正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运算符可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。

正则表达式是由普通字符(例如字符 a 到 z)以及特殊字符(称为"元字符")组成的文字模式。模式描述在搜索文本时要匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

参考资料来源:

百度百科——正则表达式

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-23
import re
s = 'speed=210,angle=150'
m = re.findall(r'(\w*[0-9]+)\w*',s)
print m

结果:

>>> import re

>>> s = 'speed=210,angle=150'

>>> m = re.findall(r'(\w*[0-9]+)\w*',s)

>>> print m

['210', '150']

>>> 

本回答被提问者和网友采纳
第2个回答  2014-11-10
>>> import re
>>> 
>>> context = 'speed=210,angle=150'
>>> re.findall("\d+", context)
['210', '150']
>>>

相似回答