Python正则表达式与lookbehind和lookahead无法正常工作

时间:2016-04-30 07:46:55

标签: python regex

我有一个Python regexdebuggex中正常工作:

enter image description here

但是,当我在Python控制台中执行此操作时:

import re
rgx = re.compile(r'(?<="careerJobAdsList", ){"jobAds":.*}](?=,"nodes":)')

st = 'widget("careerJobAdsList", {"jobAds":[{"id":607}],"nodes":[{"id":2,"parent_id"'

rgx.match(st)
>>> None

我试图逃避rgx中的所有特殊字符,但它并没有改变输出。

我错过了什么吗?

1 个答案:

答案 0 :(得分:3)

match在字符串的开头找到匹配项。请改用search

print(rgx.search(st))

引用 re.match

  

如果字符串开头的零个或多个字符匹配   正则表达式模式,返回相应的MatchObject   实例。如果字符串与模式不匹配,则返回None;注意   这与零长度匹配不同。

Python代码

import re
rgx = re.compile(r'(?<="careerJobAdsList", ){"jobAds":.*}](?=,"nodes":)')
st = 'widget("careerJobAdsList", {"jobAds":[{"id":607}],"nodes":[{"id":2,"parent_id"'
print(rgx.search(st))