我們在做資料處理的時候,會遇到包含多條格式類似的長字串,比如說
recv =
'node1_temperature:26 node1_humidity:48 node2_temperature:36 node2_humidity:48 ' \
'node3_temperature:24 node3_humidity:35 node4_temperature:54 node4_humidity:48 ' \
'node5_temperature:43 node5_humidity:48 '
從字串中我們可以看到有五組格式相同的資料,每一組包含temperature和humidity,所以該怎麼把這5組資料提取出來呢?例如:提取node1_temperature的值,我們可以這樣做
node1_temperature = re.findall(r'node1_temperature:(.*) node1_humidity'
, recv)
該例提出的資料是26。從例子可以看出,findall方法的使用: re.findall(r』 26前面的部分內容(.*)26後面的部分內容』),也即指明前後,來確定中間夾著的內容,指明相對位置得到絕對位置。
temp =
node1_temperature = re.findall(r'node1_temperature:(.*) node1_humidity'
, recv)
int(node1_temperature[0]
))
格式要求:修改單引號內的內容即可,(.)不用更改。(.)前後的內容根據要提取的資料而定,並且要注意的原字串中某一資料如26的前後如果包含空格,(.*)前後的內容也要包括空格
re.findall(r'node1_temperature:(.*) node1_humidity'
, recv)
import re
temp =
humidity =
recv =
'node1_temperature:26 node1_humidity:48 node2_temperature:36 node2_humidity:48 ' \
'node3_temperature:24 node3_humidity:35 node4_temperature:54 node4_humidity:48 ' \
'node5_temperature:43 node5_humidity:48 '
node1_temperature = re.findall(r'node1_temperature:(.*) node1_humidity'
, recv)
int(node1_temperature[0]
))node1_humidity = re.findall(r'node1_humidity:(.*) node2_temperature'
, recv)
int(node1_humidity[0]
))node2_temperature = re.findall(r'node2_temperature:(.*) node2_humidity'
, recv)
int(node2_temperature[0]
))node2_humidity = re.findall(r'node2_humidity:(.*) node3_temperature'
, recv)
int(node2_humidity[0]
))node3_temperature = re.findall(r'node3_temperature:(.*) node3_humidity'
, recv)
int(node3_temperature[0]
))node3_humidity = re.findall(r'node3_humidity:(.*) node4_temperature'
, recv)
int(node3_humidity[0]
))node4_temperature = re.findall(r'node4_temperature:(.*) node4_humidity'
, recv)
int(node4_temperature[0]
))node4_humidity = re.findall(r'node4_humidity:(.*) node5_temperature'
, recv)
int(node4_humidity[0]
))node5_temperature = re.findall(r'node5_temperature:(.*) node5_humidity'
, recv)
int(node5_temperature[0]
))node5_humidity = re.findall(r'node5_humidity:(.*) '
, recv)
int(node5_humidity[0]
))print
("5個結點的溫度分別為:"
)print
(temp)
print
("5個結點的濕度分別為:"
)print
(humidity)
python 從字串中提取資料
1.使用正規表示式,用法如下 總結 匹配字串的開始。匹配字串的結尾。b 匹配乙個單詞的邊界。d 匹配任意數字。d 匹配任意非數字字元。x?匹配乙個可選的 x 字元 換言之,它匹配 1 次或者 0 次 x 字元 x 匹配0次或者多次 x 字元。x 匹配1次或者多次 x 字元。x 匹配 x 字元,至少 ...
從字串中提取數字
下面程式將字串中的連續數字提取出來,並存放到一維陣列中。比如說乙個字串 a284twx234 je3432 把 284 234 3432 這3個連續數字提取出來,分別存放到a 0 a 1 a 2 中。include include include int main buf i 0 sscanf bu...
從字串中提取整數
首先說一下我要做的事情 從乙個txt檔案中 存著乙個矩陣 從這個檔案中提取出這個檔案中的整數。矩陣 1 2 3 4 5 6 7 8 0 1 8 7 3 8 2 9 之前用的函式是fgets char fgets char s,int n,file stream 引數 s 字元型指標,指向儲存讀入資料...