这是我正在使用的数据字符串。
f = """{"id"=156,"pid"=656,"sd"=656,"id"=156,"pid"=656}"""我想读取id的值。所以我用
regex = '"id":(.+?),"pid"'
pattern = re.compile(regex)
ida = re.findall(pattern,f)现在regex返回id的两个值。我只想读取" id“和"sd”之间的id值。我们如何编写regex语句以包含"pid“和"sd”,从而只获得第一个"id“的值。
发布于 2015-09-19 11:57:15
re.findall()返回模式的所有匹配,而可以使用re.search获取第一个id的值:
>>> re.search(r'"id"=(\d+)',f).group(1)
'156'请注意,如果您只想找到模式的第一次出现,则不需要其他额外条件,re.search将默认返回该条件。
发布于 2015-09-19 11:57:00
您可以使用查找器regex:
>>> 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"=就在我们的比赛前。
https://stackoverflow.com/questions/32667901
复制相似问题