首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向后查找的正则表达式

向后查找的正则表达式
EN

Stack Overflow用户
提问于 2020-05-11 20:25:33
回答 3查看 62关注 0票数 0

嗨,我有一个字符串,我想用Python解析它。我是新手,所以真的很感激你的帮助。

代码语言:javascript
复制
ABC_XYZ::A_BCD_XYZ_C9_KDFJ_7011_1_11_14

输出C9:总是以字母和数字开头

输出7011:总是4位或更多位数

输出1, 11, 14:总是在字符串的末尾。一两位数字。可能有3人以上。

更新。

我使用的是[^_]+,它解析了所有的'_‘。我只想要那些火柴。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-05-11 21:04:00

你可能会相处的

代码语言:javascript
复制
import re

def get_values(string):
    rx = re.compile(r'_([A-Z]\d)_.*?_(\d{4,}(?=_)).*?((?:_\d{1,2})+)')
    m = rx.search(string)
    if m:
        return (m.group(1), m.group(2), [item for item in m.group(3).split("_") if item])

print(get_values("ABC_XYZ::A_BCD_XYZ_C9_KDFJ_7011_1_11_14"))
# ('C9', '7011', ['1', '11', '14'])

请参阅regex101.com上的表达式的演示

票数 1
EN

Stack Overflow用户

发布于 2020-05-11 20:40:02

您可以使用这个regex

代码语言:javascript
复制
((?<=_)\d{4})|((?<=_)\w?\d{1})

https://regex101.com/r/0fhJFY/1

票数 2
EN

Stack Overflow用户

发布于 2020-05-11 20:44:34

我不明白你到底需要什么,但准则:

代码语言:javascript
复制
[^_]+_[^_]+::[^_]_[^_]+_[^_]+_([A-Z]\d)_[^_]+_(\d{4,})_(\d)_(\d+)_(\d+)

给出您所提供的字符串的输出。

为了测试和学习regex,我建议您访问像这样的站点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61738646

复制
相关文章

相似问题

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