howema 发表于 2014-04-19 19:34

正则表达式匹配多行文本

有以下文本,想从中匹配到var coaseParam = {}大括号里面的内容,
用了正则表达式reg = "var coaseParam = {*\}$",匹配到的结果是空的[];
请高手帮忙,正则表达式应该怎么写?
=======================================
<div id="sw_maindata_script">
<script type="text/javascript">
var coaseParam = {
   'object_ids':'1236535481,5,1;37081651233,2,2;36458319405,2,3;676383883,2,4;36045217833,1,5;42776544,1,6;1259892142,1,7;38516353017,1,8;1189394279,1,9;1200570557,1,10;287742094,1,11;1267530104,1,12;1087555862,1,13;1005546198,1,14;38232287054,1,15;172710757,1,16;599052027,1,17;1260012196,1,18;1271513561,1,19;38209975978,1,20;',
'category_id':'',
'keyword':'机械加工',
'page_size':'60',
'page_no':'1',
'gold_ad_ids':'',
'isHasGoldAds':false,
'fnType':'offer',
'coaseType':'specificSpider'
};
var biaowangExposure = {
'length':'1',
'param':'?dmtype=1001&keyword=机械加工&pid=819010_1008&categoryid=1045500&showtype=shopwindow&offerid=1236535481'
};

cao627 发表于 2014-04-19 20:55

读取文件
按行处理
匹配到 var coaseParam = {    后,用一条正则匹配 非}的字符串 ,将匹配得到的字符串添加进列表,当匹配到}时,结束读取行
将列表转换为字符串。

yakczh_cu 发表于 2014-04-19 23:16

import re
patten=re.compile(r' var coaseParam = \{[^\}]*\}')

out=patten.search(html)
print(out.group())

howema 发表于 2014-04-20 07:14

yakczh_cu 发表于 2014-04-19 23:16 static/image/common/back.gif


这个可以了,多谢

Jpython 发表于 2014-04-20 17:53

匹配多行html页面最好加上 re.M
页: [1]
查看完整版本: 正则表达式匹配多行文本