python 从字符串中提取数值

python中用re.findall函数,里面写正则表达式

root@vdirectva:/home/lic_auto_scale# cat re.py
import re
test=['10Mbps','100bps','6.7Gbps','0.8bps','10.562Kbps']
for union in test :
  _size=re.findall(r'\d+\.*\d*',union)
  xusage = re.findall(r'\D*bps',union)
print("size: %3s , traffic volume unit : %3s", (_size,xusage))

root@vdirectva:/home/lic_auto_scale#
root@vdirectva:/home/lic_auto_scale# python ./re.py
('size: %3s , traffic volume unit : %3s', (['10'], ['Mbps']))
('size: %3s , traffic volume unit : %3s', (['100'], ['bps']))
('size: %3s , traffic volume unit : %3s', (['6.7'], ['Gbps']))
('size: %3s , traffic volume unit : %3s', (['0.8'], ['bps']))
('size: %3s , traffic volume unit : %3s', (['10.562'], ['Kbps']))

正则表达式含义

. # 点可代表一切字符

\ # 起转义作用

[...] # 指代方括号中的任意字符

\d # 指代数字0-9

\D # 指代非数字

\s # 指代一切空格,包括tab制表符、空格、换行等

\S # 指代非空格

\w # 指代大小写字母、数字和下划线

\W # 指代非大小写字母、数字和下划线

* # 匹配前面字符 >=0 次

+ # 匹配前面字符1次及以上

? # 匹配前面字符0次或1次

{m} # 匹配m次

{m,n} # 匹配m到n次

{m,} # 至少匹配m次

猜你喜欢

转载自www.cnblogs.com/cnmumian/p/12023260.html
今日推荐