正则表达式匹配系统需求字符串问题求助
正则匹配与字典转换方案
正则表达式
使用精确匹配指定键的正则模式,避免将Graphics:误识别为新的分隔键:
(OS|Processor|Memory|Storage):\s*(.*?)(?=\s+(?:OS|Processor|Memory|Storage):|$)
- 模式说明:
(OS|Processor|Memory|Storage):精准匹配需要提取的目标键:\s*:匹配键后的冒号及任意数量的空白字符(.*?):非贪婪模式匹配键对应的内容,避免过度截取(?=\s+(?:OS|Processor|Memory|Storage):|$):正向预查,当检测到下一个目标键或字符串结尾时停止匹配
Python代码实现
import re req_str = 'OS: Windows® 7 Processor: Intel Core i3-9100 / AMD Ryzen 3 2300X Memory: 8 GB RAM Graphics: NVIDIA® GeForce® GTX 1050 Ti / AMD Radeon™ RX 560 (4GB VRAM) Storage: 60 GB available space' pattern = r'(OS|Processor|Memory|Storage):\s*(.*?)(?=\s+(?:OS|Processor|Memory|Storage):|$)' matches = re.findall(pattern, req_str) result = {key: value.strip() for key, value in matches} print(result)
运行后会生成你期望的字典结构:
{ 'OS': 'Windows® 7', 'Processor': 'Intel Core i3-9100 / AMD Ryzen 3 2300X', 'Memory': '8 GB RAM Graphics: NVIDIA® GeForce® GTX 1050 Ti / AMD Radeon™ RX 560 (4GB VRAM)', 'Storage': '60 GB available space' }
内容的提问来源于stack exchange,提问作者Coderio
相关产品推荐
相关产品推荐

