python正则表达式从字符串中提取数字的思路详解

您所在的位置:网站首页 哪种孕妇容易胆汁酸高 python正则表达式从字符串中提取数字的思路详解

python正则表达式从字符串中提取数字的思路详解

2023-05-10 07:43| 来源: 网络整理| 查看: 265

python

正则表达式从字符串中提取数字的思路详解

python

从字符串中提取数字

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

## 

总结

## ^ 

匹配字符串的开始。

## $ 

匹配字符串的结尾。

## \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() 

函数获取它的值。

## 

正则表达式中的点号通常意味着

 “

匹配任意单字符

解题思路:

既然是提取数字,那么数字的形式⼀般是:整数,⼩数,整数加⼩数;

所以⼀般是形如:

----.-----

根据上述正则表达式的含义,可写出如下的表达式:

"\d+\.?\d*"

\d+

匹配

1

次或者多次数字,注意这⾥不要写成

*

,因为即便是⼩数,⼩数点之前也得有⼀个数字;

\.?

这个是匹配⼩数点的,可能有,也可能没有;

\d*

这个

是匹配⼩数点之后的数字的,所以是

0

个或者多个;

代码如下:

import re

string="A1.45

b5

6.45

8.82"

print re.findall(r"\d+\.?\d*",string)

# ['1.45', '5', '6.45', '8.82']

匹配指定字符串开头的数字

例如下⾯的

string

tensorflow:Final best valid   0 loss=0.20478513836860657 norm_loss=0.767241849151384 roc=0.8262403011322021 pr=0.39401692152023315 calibration=0.9863265752792358 rate=0.0

提取

 calibration=0.9863265752792358 .

匹配

“calibration=”

后⾯的数字

pattern = re.compile(r'(?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3