如何使用正则表达式在特定模式之后获取特定数据

2024-04-23 06:03:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据:

policy output MRSUU_1:6-828

如何使用正则表达式搜索始终采用此格式的数据:

policy output MRSUU_(digit)(colon)(digit)(hyphen)828

我希望能够像上面那样搜索我的数据,但在连字符之后得到任何东西。。因此,我的搜索将始终查找字符串策略输出MRSUU_,然后是数字、冒号、数字、连字符,然后返回后面的内容

output answer wanted : 828

2条回答

有时,两个非常简单的工具(前缀检查和拆分)与一个复杂工具(regex)一样有效。哪种方法更好将取决于输入数据的性质以及代码需要的健壮性,但我来之不易的解析建议是更简单的技术,直到您确定它们不起作用为止

lines = [
    'foo',
    'policy output MRSUU_1:6-828',
    'bar',
]

PREFIX = 'policy output MRSUU_'

for line in lines:
    if line.startswith(PREFIX):
        n = line.split('-')[-1]
        print(n)

这应该适合您:

import re

text = "policy output MRSUU_1:6-828"
res = re.search(r"MRSUU_\d+:\d-(\d+)", text)
res.groups()

输出:

('828',)

相关问题 更多 >