首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex -系统要求

Regex -系统要求
EN

Stack Overflow用户
提问于 2022-07-20 02:50:42
回答 1查看 40关注 0票数 0

我正在学习regex,并且很难从下面的系统需求字符串中找到模式:

代码语言:javascript
复制
"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"

我做了很多次,但都找不到匹配的。我想根据冒号(:)将结果分组到python字典中,如下所示:

代码语言:javascript
复制
    {
        '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'
    }

任何帮助都将不胜感激。这是我的工作:regex101。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-20 02:59:34

您可以在re.findall中使用"(\w+):\s+(.*?)(?=$|\s*\w+:\s+)":一个单词,后面跟着一个冒号和空格,然后尽可能少地使用任何东西,直到字符串结束或另一个单词后面跟着一个冒号和空格为止。

最起码的例子:

代码语言:javascript
复制
s = "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"

import re
d = dict(re.findall(r"(\w+):\s+(.*?)(?=$|\s*\w+:\s+)", s))

产出:

代码语言:javascript
复制
{'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'}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73045458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档