宝哥软件园

python正则表达式从字符串中提取数字的详细说明

编辑:宝哥软件园 来源:互联网 时间:2021-08-21

Python从字符串中提取数字

使用如下正则表达式:

# #摘要# #匹配字符串的开头。# # $匹配字符串的结尾。# # 匹配单词的边界。# # 匹配任何号码。## D匹配任何非数字字符。## x?匹配一个可选的x字符(换句话说,它匹配x字符一次或0次)。## x*匹配0个或更多x个字符。## x匹配一个或多个x字符。## x{n,m}至少匹配x个字符n次,最多匹配m次。## (a|b|c)匹配a、b或C.## (x)通常表示记住的组。您可以使用re.search函数返回对象的groups()函数来获取其值。# #正则表达式中的点通常意味着“匹配任何单个字符”的想法:

由于数字是提取出来的,所以数字的形式一般是:整数、小数、整数加小数;

因此,它的形状一般为:-。

根据上面正则表达式的含义,可以写出下面的表达式:' d '。 d * ';

d匹配一个或多个数字。注意不要在这里写*号,因为即使是小数,小数点前一定要有数字;.这与小数点匹配,小数点可能是也可能不是;d*这与小数点后的数字匹配,因此它等于或大于0;

代码如下:

导入重新限制='A1.45,b5,6.45,8.82 '打印re.findall(r'd 。 d * ',字符串)# ['1.45 ',' 5 ',' 6.45 ',' 8.82']与指定字符串开头的数字匹配

例如,以下字符串:

tensorflow:Final最佳有效0损失=0.20478513836860657 norm _ loss=0.767241849151384 roc=0.8262403011322021 pr=0.39401692152023315校准=0.9863 265752792358速率=0.0提取校准=0.9999。#匹配数字模式=re.compile(r '(?=校准=)d 。d* ')模式. findall(字符串)#[' 0.986326572792358 ']在这里插入图片描述

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

pattern=re.compile(r '(?loss=)d 。d* ')模式. findall(字符串)# ['loss=0.20478513836860657 ',' loss=0.767241849151384 ']在这里插入图片描述

匹配时间,17:35336024

string=' warn : sensorflow : 20181011 15:28:39 Initialize training ' pattern=re.compile(r ' D { 2 } : D { 2 } : D { 2 } '模式)。findall(string)#[' 15:28336039 ']匹配时间,20181011 15336028336039

string=' warn : sensorflow : 20181011 15:28336039 Initialize training ' pattern=re.compile(r ' D { 4 } D { 2 } D { 2 } s D { 2 } : D { 2 } : D { 2 } '模式)。find all(string)#[' 20181011 15336028:39 ']摘要

以上是边肖介绍的从字符串中提取数字的python正则表达式的详细说明。希望对大家有帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!如果你觉得这篇文章对你有帮助,请转载,请注明出处,谢谢!

更多资讯
游戏推荐
更多+