首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >利用三个固定字符之间的正则表达式提取数据

利用三个固定字符之间的正则表达式提取数据
EN

Stack Overflow用户
提问于 2015-09-19 11:52:55
回答 2查看 49关注 0票数 0

这是我正在使用的数据字符串。

代码语言:javascript
运行
复制
f = """{"id"=156,"pid"=656,"sd"=656,"id"=156,"pid"=656}"""

我想读取id的值。所以我用

代码语言:javascript
运行
复制
regex = '"id":(.+?),"pid"'
pattern = re.compile(regex)
ida = re.findall(pattern,f)

现在regex返回id的两个值。我只想读取" id“和"sd”之间的id值。我们如何编写regex语句以包含"pid“和"sd”,从而只获得第一个"id“的值。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-19 11:57:15

re.findall()返回模式的所有匹配,而可以使用re.search获取第一个id的值:

代码语言:javascript
运行
复制
>>> re.search(r'"id"=(\d+)',f).group(1)
'156'

请注意,如果您只想找到模式的第一次出现,则不需要其他额外条件,re.search将默认返回该条件。

票数 3
EN

Stack Overflow用户

发布于 2015-09-19 11:57:00

您可以使用查找器regex:

代码语言:javascript
运行
复制
>>> f = """{"id"=156,"pid"=656,"sd"=656,"id"=156,"pid"=656}"""
>>> print re.search(r'(?<="id"=)(\w+)(?=.*"sd")', f).group()
156

(?=.*"sd")会确保"sd"在我们的比赛之后。

(?<="id"=)将确保"id"=就在我们的比赛前。

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

https://stackoverflow.com/questions/32667901

复制
相关文章

相似问题

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