我需要python中的正则表达式来匹配并在文本文件中的字符串"id":之后返回整数"id":

文本文件包含以下内容:

{"page":1,"results": [{"adult":false,"backdrop_path":"/ba4CpvnaxvAgff2jHiaqJrVpZJ5.jpg","id":807,"original_title":"Se7en","release_date":"1995-09-22","p

我需要使用正则表达式在"id"之后获取807

===============>>#1 票数:2

假设文件不止于此:

import json

with open('/path/to/file.txt') as f:
    data = json.loads(f.read())
    print(data['results'][0]['id'])

如果该文件不是有效的JSON,则可以使用以下方法获取id的值:

from re import compile, IGNORECASE

r = compile(r'"id"\s*:\s*(\d+)', IGNORECASE)

with open('/path/to/file.txt') as f:
    for match in r.findall(f.read()):
        print(match(1))

===============>>#2 票数:2 已采纳

你是这个意思吗?

#!/usr/bin/env python
import re

subject = '{"page":1,"results": [{"adult":false,"backdrop_path":"/ba4CpvnaxvAgff2jHiaqJrVpZJ5.jpg","id":807,"original_title":"Se7en","release_date":"1995-09-22","p'

match = re.search('"id":([^,]+)', subject)
if match:
    result = match.group(1)
else:
    result = "no result"
print result    

输出: 807

编辑:

为了回应您的评论,添加了一种忽略第一个匹配项的简单方法。 如果使用此选项,请记住在主题中添加"id":809,"etc ,以便我们可以忽略807并找到809。

n=1
for match in re.finditer('"id":([^,]+)', subject):
    if n==1:
        print "ignoring the first match"
    else:
        print match.group(1)
    n+=1

  ask by user3552978 translate from so

未解决问题?本站智能推荐:

2回复

在regex python中匹配字符串后获取特定字符串

我是新的python编程。 我一直在尝试使用正则表达式匹配字符串后查找一些数据。 例如: 我只在寻找'20628103568',但是用我的代码,它会在ethernet33之后打印所有内容 这是代码 输出: 预期输出: 任何有关如何修改上述正则表达式以
2回复

python regex匹配行,在字符串后包含数字,字符串末尾有数字

我使用正则表达式捕获文件中的文本,但是字符串包含错误的数字。 我没有捕获它,但是在尝试捕获下一行时,它仅返回字符串,而不返回下一行。 当没有错误的尾随数字时,我能够捕获它。 我已经尝试过许多正则表达式的组合,但尚未成功。 文本: 成功捕获正则表达式但带有数字的代码:
3回复

Python regex匹配具有3个由空格“ 0 1 1”或“ 1 1 1”隔开的整数的字符串[保持]

我正在尝试匹配具有3个由空格“ 0 1 1”或“ 1 1 1”等隔开的整数的字符串。 我面临的问题是,尽管我的正则表达式匹配“ 0 1 1”,但它也匹配“ 0 1 1 1”“ 0 1 1 1 1 1 1”,依此类推。 我尝试了各种方法,但是没有用。 谁能帮助我使用确切的正则表达式来匹配此字
2回复

字符串后的python beautifulsoup匹配正则表达式

我正在使用BeautifulSoup和Python抓取网页。 我有一个BS元素, 如下所示返回一系列列表对象。 我想在每个str之后返回文本 如何将其从BS对象中删除? 我不确定正则表达式,也不确定它如何与BeautifulSoup交互。
3回复

Python,正则表达式:匹配字符串后提取字符串

我想使用正则表达式匹配模式并提取模式的一部分。 我已经抓取了HTML数据,一个说明性代码段如下所示: find_all('a')更具代表性的子集突出显示问题: HTML当前存储为BeautifulSoup对象,即已通过以下方式传递: 我想在整个对象中搜索/proje
1回复

python,regex,使用重复字符匹配字符串

我正在尝试在Apache日志文件中搜索与特定漏洞扫描相关的特定条目。 我需要将单独文件中的字符串与网络日志中的URI内容进行匹配。 我尝试查找的某些字符串包含重复的特殊字符,例如'?'。 例如,我需要能够匹配仅包含字符串“ ????????”的攻击 但我不想在字符串“ ???????
3回复

python regex:匹配空格字符或字符串结尾

我想在文本中匹配空格字符或字符串结尾。 模式不对。 如何使用python?
2回复

python Regex如何匹配此字符串中的价格?

如何匹配此字符串中的价格? 我要这个字符串中的$ 58,该怎么做? 这是我正在尝试的方法,但是不起作用:
4回复

匹配字符串的python regex子部分

我想替换正则表达式匹配字符串的第一部分。 我为此在python中使用re (regex)包: 预期产量:
3回复

Python regex re.compile()匹配字符串

我试图通过python正则表达式从字符串中获取版本号... 给定文件名:facter-1.6.2.tar.gz 在循环内部时: 如何将1.6.2位转换为版本