如何使用Python re模块从字符串中提取名称、id、type字段值
实现方案
用Python标准库re模块的正则捕获组就能完成提取,规则可适配字段间任意数量的空白字符,实现代码如下:
import re raw_string = "Wacom Bamboo Connect Pen stylus id: 15 type: STYLUS" # 三个捕获组依次匹配名称、数字id、类型值 match = re.match(r"^(.*?)\s+id:\s*(\d+)\s+type:\s*(\w+)$", raw_string) if match: name, dev_id, dev_type = match.groups() result = (name.strip(), int(dev_id), dev_type)
执行后result的值就是目标结果:("Wacom Bamboo Connect Pen stylus", 15, "STYLUS")
正则规则说明
(.*?):非贪婪匹配开头到id:标记前的所有内容,拿到原始名称文本,后续用strip()清除末尾多余空白(\d+):匹配id:后的连续数字,提取后转成整数(\w+):匹配type:后的连续字母字符串,拿到类型值\s+/\s*:匹配字段间任意数量的空格、制表符等空白,不会因为字段间空格数不固定匹配失败
内容的提问来源于stack exchange,提问作者Сергій Жеревчук
相关产品推荐
相关产品推荐

