我正在開發一個程式來讀取 CSV 檔案并從中創建一個資訊字典。CSV 中的每一行本質上都是一個新的字典條目,其中的分隔物件是值。
作為任務的一個子部分,我需要從字串中提取未知數量的數字。我有一個作業版本,但它似乎不是很pythonic。
示例字串如下所示:
variable = Applicaiton.Module_Name.VAR_NAME_ST12.WORD_type[0]
variable是python代碼中的字串名稱,表示MODBUS中的變數名。我只想提取.WORD_type[0]之前的數字,這些數字與字串打包的位元組數有關。
這是我的作業代碼,請注意它嵌套在遍歷 CSV 中的行的 for 陳述句中。var_length并且var_type是其中的一些keys,即{"var_length": var_length}
if re.search(". _ST[0-9]{1,2}\\.WORD_type. ", variable):
var_type = "string"
temp = re.split("\\.", variable)
temp = re.split("_", temp[2])
temp = temp[-1]
var_length = int(str.lstrip(temp, "ST")) / 2
uj5u.com熱心網友回復:
您可以嘗試使用匹配組,如下所示:
import re
variable = "Applicaiton.Module_Name.VAR_NAME_ST12.WORD_type[0]"
matches = re.match(r". _ST(\d )\.WORD_type. ", variable)
if matches:
print(matches[1])
matches[0]具有完全匹配并matches[1]包含匹配的組。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/366285.html
上一篇:通過洗掉表情符號來清理字串
