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次