匹配文件中的urlencoded数据

时间:2014-01-29 19:57:44

标签: python ruby regex pcre

有没有办法在文件中匹配HTTP POST urlencoded数据(Content-Type:application / x-www-form-urlencoded)?匹配的字符串将仅包含可打印字符和urlencoded字符,如% A-F和HTTP POST / GET数据中的变量符号&,当然还包含变量名称和变量内容之间的=。例如,随机文本包含我需要匹配的数据:

  

死亡那里欢快的方式嘈杂的功绩。皮鲁德害羞的春天也不是六个   虽然相互生活要求程度。回答dashwood先进   女士最小的处理或。尝试办公室自己改善现在看到。   所谓的人都在县城里引起了她的尊敬。完全是这些   方式似乎没事。   网站= HTTP%3A%2F%2Fwww.test.com%2F&安培;数= 1037319821&安培;注释=测试+ MEA&安培; gender = male的&安培;提交=提交   你在适当的英俊回归投掷是不是。没有   希望他的照片没有暴露的谈话时间。好奇心不断   属于违法所以解释它精致。记得要跟着   你自己的材料再次运输。西边高,我们没有或在   约翰。关于或给出诙谐的事件。或社交材料单身汉   让房东受限制。很忙很容易找到很多忙。所以   精致的我解释的余数。 Dashwood表示安全   我觉得我笑了。   的 ID = 1234&安培;变量=试验&安培;姓名=约翰&安培;姓= Doe的安培; gender = male的&安培;提交=提交

要匹配的数据以粗体显示。试过很多方法,但找不到%[A-F]{2} & =的正则表达式,或者通常匹配它们。

1 个答案:

答案 0 :(得分:1)

这应该让你在那里大部分时间。

x = re.compile("([A-Za-z0-9%./]+=[^\s]+)")
out = x.findall(input_str)

# out = ['website=http%3A%2F%2Fwww.test.com%2F&number=1037319821&comment=Test+mea&gender=male&submit=Submit', 'id=1234&variable=test&firstname=John&lastname=Doe&gender=male&submit=Submit']'