我有一个Python regex
在debuggex中正常工作:
但是,当我在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
中的所有特殊字符,但它并没有改变输出。
我错过了什么吗?
答案 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))