从字符串中提取数字的pythonic方法
pythonic method for extracting numeric digits from string
我正在开发一个程序来读取 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
您可以像这样尝试使用匹配组:
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]
包含匹配组。
我正在开发一个程序来读取 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
您可以像这样尝试使用匹配组:
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]
包含匹配组。