javascript - 正则匹配多个值,并返回指定的分组
问题描述
[ { 'thumbURL': 'http://img0.imgtn.bdimg.com/it/u=3025588030,3916696758&fm=23&gp=0.jpg', 'adType': '0', 'middleURL': 'http://img0.imgtn.bdimg.com/it/u=3025588030,3916696758&fm=23&gp=0.jpg', 'largeTnImageUrl': '', 'hasLarge': 0, 'hoverURL': 'http://img0.imgtn.bdimg.com/it/u=3025588030,3916696758&fm=23&gp=0.jpg', 'pageNum': 0, 'objURL': 'http://pic.58pic.com/58pic/13/89/42/50B58PICbPR_1024.jpg', 'fromURL': 'ippr_z2C$qAzdH3FAzdH3Fooo_z&e3Bcbrtv_z&e3Bv54AzdH3Frf1AzdH3F8nbl9dca_z&e3Bip4s', 'fromURLHost': 'www.58pic.com', 'currentIndex': '', 'width': 1024, 'height': 625, 'type': 'jpg', 'filesize': '', 'bdSrcType': '0', 'di': '166108309290', 'is': '0,0', 'bdSetImgNum': 0, 'spn': 0, 'bdImgnewsDate': '1970-01-01 08:00', 'fromPageTitle': '<strong>广州</strong>夜景图片', 'bdSourceName': '', 'bdFromPageTitlePrefix': '', 'isAspDianjing': 0, 'token': '', 'imgType': '', 'adid': '0', 'pi': '0', 'cs': '3025588030,3916696758', 'os': '442898692,2704726703', 'simid': '4271495673,765344659', 'source_type': '', 'personalized': '0', 'base64': ’’, 'adPicId': '0' }, { 'thumbURL': 'http://img3.imgtn.bdimg.com/it/u=986014556,2144085313&fm=23&gp=0.jpg', 'adType': '0', 'middleURL': 'http://img3.imgtn.bdimg.com/it/u=986014556,2144085313&fm=23&gp=0.jpg', 'largeTnImageUrl': '', 'hasLarge': 0, 'hoverURL': 'http://img3.imgtn.bdimg.com/it/u=986014556,2144085313&fm=23&gp=0.jpg', 'pageNum': 1, 'objURL': 'http://img.pconline.com.cn/images/upload/upc/tx/itbbs/1010/27/c2/5665647_1288194725363_1024x1024it.jpg', 'fromURL': 'ippr_z2C$qAzdH3FAzdH3Ftpkkf_z&e3Brv5gstgj_z&e3Bv54_z&e3BvgAzdH3F1vAzdH3F8da9988b_z&e3Bip4s', 'fromURLHost': 'itbbs.pconline.com.cn', 'currentIndex': '', 'width': 850, 'height': 609, 'type': 'jpg', 'filesize': '', 'bdSrcType': '0', 'di': '181589344090', 'is': '0,0', 'bdSetImgNum': 0, 'spn': 0, 'bdImgnewsDate': '1970-01-01 08:00', 'fromPageTitle': '新鲜出炉《<strong>广州</strong>花城广场》+ 广州 塔', 'bdSourceName': '', 'bdFromPageTitlePrefix': '', 'isAspDianjing': 0, 'token': '', 'imgType': '', 'adid': '0', 'pi': '0', 'cs': '986014556,2144085313', 'os': '1860476025,1446613078', 'simid': '3378049948,192663593', 'source_type': '', 'personalized': '0', 'base64': ’’, 'adPicId': '0' }, { 'thumbURL': 'http://img5.imgtn.bdimg.com/it/u=1201045279,2807563612&fm=23&gp=0.jpg', 'adType': '0', 'middleURL': 'http://img5.imgtn.bdimg.com/it/u=1201045279,2807563612&fm=23&gp=0.jpg', 'largeTnImageUrl': '', 'hasLarge': 0, 'hoverURL': 'http://img5.imgtn.bdimg.com/it/u=1201045279,2807563612&fm=23&gp=0.jpg', 'pageNum': 2, 'objURL': 'http://uploadfile.bizhizu.cn/2015/0314/20150314112515522.jpg', 'fromURL': 'ippr_z2C$qAzdH3FAzdH3F4_z&e3Bktzitz7_z&e3BvgAzdH3FktzitAzdH3F9b0n_z&e3Bip4s', 'fromURLHost': 'm.bizhizu.cn', 'currentIndex': '', 'width': 1920, 'height': 1200, 'type': 'jpg', 'filesize': '', 'bdSrcType': '0', 'di': '99549879990', 'is': '0,0', 'bdSetImgNum': 0, 'spn': 0, 'bdImgnewsDate': '1970-01-01 08:00', 'fromPageTitle': '<strong>广州</strong>夜景图2', 'bdSourceName': '', 'bdFromPageTitlePrefix': '', 'isAspDianjing': 0, 'token': '', 'imgType': '', 'adid': '0', 'pi': '0', 'cs': '1201045279,2807563612', 'os': '1767325581,810579076', 'simid': '4162119815,795645113', 'source_type': '', 'personalized': '0', 'base64': ’’, 'adPicId': '0' }]
源数据是上边的格式.想匹配到objURL和fromPageTitle中的数据.
我自己写的正则是这样
'objURL':'(.*?) 'fromPageTitle':'(.*?)'
但是匹配的结果objURL中包括了objURL和fromPageTitle之间的其他字符,fromPageTitle是期待的值.所以我只能做二次匹配.请问,有办法一次匹配出objURL和fromPageTitle后边的链接吗?
问题解答
回答1:这么规整的json数据,为什么不用json来操作呢?
回答2:a = 字符串for i in re.findall(r’('objURL.*?fromPageTitle'.*?),’, a, re.S): print i 回答3:
你知道分组的概念吗,匹配完可以把括号中的内容取出来的,java中对应的是Matcher.group(n)
