Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8
  • .NET 7.0 (C#)
  • Rust
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • All Tokens
  • Common Tokens
  • General Tokens
  • Anchors
  • Meta Sequences
  • Quantifiers
  • Group Constructs
  • Character Classes
  • Flags/Modifiers
  • Substitution
  • A single character of: a, b or c
    [abc]
  • A character except: a, b or c
    [^abc]
  • A character in the range: a-z
    [a-z]
  • A character not in the range: a-z
    [^a-z]
  • A character in the range: a-z or A-Z
    [a-zA-Z]
  • Any single character
    .
  • Alternate - match either a or b
    a|b
  • Any whitespace character
    \s
  • Any non-whitespace character
    \S
  • Any digit
    \d
  • Any non-digit
    \D
  • Any word character
    \w
  • Any non-word character
    \W
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • Zero or one of a
    a?
  • Zero or more of a
    a*
  • One or more of a
    a+
  • Exactly 3 of a
    a{3}
  • 3 or more of a
    a{3,}
  • Between 3 and 6 of a
    a{3,6}
  • Start of string
    ^
  • End of string
    $
  • A word boundary
    \b
  • Non-word boundary
    \B

Regular Expression

/
/
g

Test String

Code Generator

Generated Code

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"<\/i>(.*?)<i" test_str = ("<html>\n" "<head>\n" " <meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n" " <meta name=\"viewport\" content=\"initial-scale=1.0, maximum-scale=1.0, user-scalable=0\">\n" " <link rel=\"Shortcut Icon\" href=\"//www.dpfile.com/s/res/favicon.5ff777c11d7833e57e01c9d192b7e427.ico\" type=\"image/x-icon\" />\n" " <meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black\" />\n" " <meta name=\"format-detection\" content=\"telephone=no\" />\n" " <meta name=\"format-detection\" content=\"email=no\" />\n" " <meta name=\"apple-mobile-web-app-title\" content=\"大众点评\">\n" " <meta name=\"location\" content=\"province=湖北;city=武汉\">\n" " <link rel=\"apple-touch-icon-precomposed\" href=\"//www.dpfile.com/m/img/app/dianping/logoforiphone.eb494fad081fe8a318aec427d5de0b43.png>\" />\n" " <link rel=\"apple-touch-startup-image\" href=\"//www.dpfile.com/m/img/app/dianping/iphonesplash.88eba14b27357f754baa669bebbdd78b.png\" />\n" " <link rel=\"stylesheet\" href=\"//www.dpfile.com/m/css/app/dianping/m.min.582950054934c1715c0170a250837783.css\" type=\"text/css\" />\n" " <link rel=\"stylesheet\" href=\"//www.dpfile.com/s/c/app/baby/pop_box.min.c35d50b401fd089d65542dcdd88c71f1.css\" type=\"text/css\" />\n" " <link rel=\"stylesheet\" href=\"//www.dpfile.com/s/c/app/baby/addbaby-shop.min.fb7723790da2b9cbd4d254e58919b0a4.css\" type=\"text/css\" />\n" " <link rel=\"canonical\" href=\"https://m.dianping.com/shop/24928984\"/>\n" " <link rel=\"stylesheet\" href=\"//www.dpfile.com/s/c/app/baby/mshop-wedding.min.89a81ca247f436abd72183b60df5e70f.css\" type=\"text/css\" />\n\n\n\n" " <title>VIA婚礼电影地址,电话,价格(图)-武汉-大众点评网</title>\n\n" " <!-- OWL性能监控 -->\n" " <script type=\"text/javascript\">\n" " \"use strict\";!function(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"_Owl_\",n=window,a={page:!0,resource:!0,js:!0};n[i]||(n[i]={isRunning:!1,isReady:!1,preTasks:[],config:a,dataSet:[],use:function(i,a){this.isReady&&n.Owl&&n.Owl[i](a),this.preTasks.push({api:i,data:[a]})},add:function(i){this.dataSet.push(i)},run:function(i){var a=this;if(!this.isRunning){this.isRunning=!0;var e=i||this.config;if(!1!==e.js){var t=n.onerror;n.onerror=function(){this.isReady||this.add({type:\"jsError\",data:arguments}),t&&t.apply(n,arguments)}.bind(this)}!1!==e.page&&n.addEventListener(\"load\",function(){if(!a.isReady){var i=window.performance&&window.performance.timing;a.add({type:\"pageTime\",data:[i]})}}),!1!==e.resource&&(window.addEventListener(\"error\",function(i){a.isReady||a.add({type:\"resError\",data:[i]})},!0),window.addEventListener(\"load\",function(i){a.isReady||a.add({type:\"resTime\",data:[i]})}))}}})}();\n\n" " //默认配置启动全部监控,业务可根据需要手动关闭其中任一种类的监控,_Owl_为全局变量\n" " _Owl_.run({\n" " page: true, //页面性能采集\n" " js: true, //JS全局错误采集\n" " resource: true //资源加载错误、性能采集\n" " })\n" " </script>\n" " <script src=\"//www.dpfile.com/app/owl/static/owl.min.6fc79953c93428c073682e6bd24e9e96.js\"></script>\n" " <script type=\"text/javascript\">\n" " Owl.start({\n" " // 建议使用前端项目名,package.json或者f2eci.json中的name\n" " project: 'wedding-h5-web',\n" " /* 强烈建议业务进行配置,有利于数据的聚合\n" " * 当前页面所属的页面URL,默认会使用window.location.href\n" " * 建议不要直接使用location.href,\n" " * 可以是非URL,比如'toutiao-detail'\n" " */\n" " pageUrl: 'https://m.dianping.com/shop'\n" " })\n" " </script>\n\n" " <meta name=\"Keywords\" content=\"VIA婚礼电影,婚礼跟拍,武汉,\"/>\n" " <meta name=\"Description\" content=\"武汉VIA婚礼电影人均:¥4550元。点击查看更多关于VIA婚礼电影的简介、地址、电话、营业时间介绍和周边停车、公交等交通信息,以及VIA婚礼电影的用户点评信息。\"/>\n" " <script>var G_rtop=+new Date, _hip = [\n" " ['_setPageId', 210008],\n" " ['_setCityId', 16]\n" " ];\n" " </script>\n\n" " <script>\n" " (function(WIN) {\n" " var MIDASCOOKIE = 'midasclick',\n" " cookie,\n" " DOC = WIN.document,\n" " cookieArr = DOC.cookie.match(new RegExp(\"(^| )\" + MIDASCOOKIE + \"=([^;]*)(;|$)\")),\n" " send = function(url) {\n" " new Image(1, 1).src = url;\n" " },\n" " sendMidas = function(data) {\n" " var base;\n" " if (!/\\.dianping\\.com/.test(DOC.domain)) {\n" " base = 'https://mlog.51ping' + '.com/log?';\n" " } else {\n" " base = 'https://mlog.dianping' + '.com/log?';\n" " }\n" " send(base + data + '&act=2&t=' + new Date().getTime());\n" " };\n" " cookie = cookieArr == null ? '\"\"' : decodeURIComponent(cookieArr[2]);\n" " if(cookie != '\"\"') {\n" " var data = cookie.split('|');\n" " sendMidas(data[0]);\n" " data[1] && send(data[1]);\n" " document.cookie = MIDASCOOKIE + '=\"\";path=/';\n" " }\n" " })(window);\n" " </script>\n\n\n" " <script>\n" " !function(e,t,n){function s(){var e=t.createElement(\"script\");e.async=!0,e.src=\"https://s0.meituan.net/bs/js/?f=mta-js:mta.min.js\";var n=t.getElementsByTagName(\"script\")[0];n.parentNode.insertBefore(e,n)}if(e.MeituanAnalyticsObject=n,e[n]=e[n]||function(){(e[n].q=e[n].q||[]).push(arguments)},\"complete\"===t.readyState)s();else{var r=\"addEventListener\",i=\"attachEvent\";if(e[r])e[r](\"load\",s,!1);else if(e[i])e[i](\"onload\",s);else{var a=e.onload;e.onload=function(){s(),a&&a()}}}}(window,document,\"mta\"),function(e,t,n){if(t&&!(\"_mta\"in t)){t._mta=!0;var s=e.location.protocol;if(\"file:\"!==s){var r=e.location.host,i=t.prototype.open;t.prototype.open=function(t,n,a,o,h){if(this._method=\"string\"==typeof t?t.toUpperCase():null,n){if(0===n.indexOf(\"http://\")||0===n.indexOf(\"https://\")||0===n.indexOf(\"//\"))this._url=n;else if(0===n.indexOf(\"/\"))this._url=s+\"//\"+r+n;else{var l=s+\"//\"+r+e.location.pathname;l=l.substring(0,l.lastIndexOf(\"/\")+1),this._url=l+n}var u=this._url.indexOf(\"?\");-1!==u?(this._searchLength=this._url.length-1-u,this._url=this._url.substring(0,u)):this._searchLength=0}else this._url=null,this._searchLength=0;return this._startTime=(new Date).getTime(),i.apply(this,arguments)};var a=\"onreadystatechange\",o=\"addEventListener\",h=t.prototype.send;t.prototype.send=function(t){function n(n,r){if(0!==n._url.indexOf(s+\"//frep.meituan.net/_.gif\")){for(var i=\"browser.ajax\",a=[98,114,111,119,115,101,114,46,97,106,97,120],o=0,h=i.length;h>o;o++)if(i.charCodeAt(o)!==a[o])return;var l;if(n.response)switch(n.responseType){case\"json\":l=JSON&&JSON.stringify(n.response).length;break;case\"blob\":case\"moz-blob\":l=n.response.size;break;case\"arraybuffer\":l=n.response.byteLength;case\"document\":l=n.response.documentElement&&n.response.documentElement.innerHTML&&n.response.documentElement.innerHTML.length+28;break;default:l=n.response.length}e.mta(\"send\",i,{url:n._url,method:n._method,error:!(0===n.status.toString().indexOf(\"2\")||304===n.status),responseTime:(new Date).getTime()-n._startTime,requestSize:n._searchLength+(t?t.length:0),responseSize:l||0})}}if(o in this){var r=function(e){n(this,e)};this[o](\"load\",r),this[o](\"error\",r),this[o](\"abort\",r)}else{var i=this[a];this[a]=function(t){i&&i.apply(this,arguments),4===this.readyState&&e.mta&&n(this,t)}}return h.apply(this,arguments)}}}}(window,window.XMLHttpRequest,\"mta\");\n\n" " // 初始化项目\n" " mta(\"create\",\"5875d3e36b783664e0db0ae4\");\n" " // 推荐设置上报地址为 HTTPS 协议,以获得更高的数据准确性,默认会和页面协议一致\n" " mta(\"config\", \"beaconImage\", \"https://frep.meituan.com/_.gif\");\n\n" " // 发送页面性能指标,包括 ttfb(首字节)、domReady(可交互)、load(完全加载)等\n" " mta(\"send\",\"page\");\n" " </script>\n\n" " <!-- 上报通道标识 -->\n" " <!-- 用来替换掉3.0中的通道配置,如Analytics('use', 'wed') -->\n" " <meta name=\"lx:category\" content=\"wed\">\n\n" " <!-- 上报应用标识 -->\n" " <!-- 用来替换掉3.0中的标识,如Analytics('config', 'appnm', 'dp_pc') -->\n" " <meta name=\"lx:appnm\" content=\"dp_m\">\n\n" " <!-- 页面名称:点评结婚pc优惠券详情页,上报页面标识 -->\n" " <!-- 用来替换掉3.0中的cid配置,如Analytics('config', 'cid', 'c_j6wjibts') -->\n" " <meta name=\"lx:cid\" content=\"dp210008\">\n\n" " <!-- 加载sdk -->\n" " <link rel=\"dns-prefetch\" href=\"//analytics.meituan.net\"/>\n" " <script type=\"text/javascript\">\n" " !(function (win, doc, ns) {\n" " var cacheFunName = '_MeiTuanALogObject';\n" " win[cacheFunName] = ns;\n" " if (!win[ns]) {\n" " var _LX = function () {\n" " _LX.q.push(arguments);\n" " return _LX;\n" " };\n" " _LX.q = _LX.q || [];\n" " _LX.l = +new Date();\n" " win[ns] = _LX;\n" " }\n" " })(window, document, 'LXAnalytics');\n\n" " //这里放置兼容代码\n" " window.Analytics = function(eventStr, config) {\n" " if(eventStr != 'event') return;\n" " if(!config) return;\n" " var nm = config.nm;\n" " if(!nm) return;\n\n" " if(nm === 'mge'){\n" " var eventType = config.event_type;\n" " if(eventType === 'click'){\n" " window.LXAnalytics('moduleClick', config.val_bid, config.val_lab);\n" " return;\n" " }\n" " if(eventType === 'view'){\n" " window.LXAnalytics('moduleView', config.val_bid, config.val_lab);\n" " return;\n" " }\n" " }\n\n" " if(nm === 'order'){\n" " window.LXAnalytics('order', config.val_bid, config.val_lab.orderId, config.val_lab);\n" " return;\n" " }\n\n" " if(nm === 'pay'){\n" " window.LXAnalytics('pay', config.val_bid, config.val_lab.orderId, config.val_lab);\n" " return;\n" " }\n\n" " if(nm === 'report' && config.val_act === 'quit'){\n" " window.LXAnalytics('pageDisappear', config.val_lab);\n" " return;\n" " }\n" " };\n\n" " </script>\n" " <script type=\"text/javascript\">\n" " var OPTION = {\n" " shopid:'24928984',\n" " cityid:'16'\n" " };\n\n" " var lx_mge = function(bid,eventType,customOption){\n" " Analytics && Analytics('event',{\n" " nm:'mge',\n" " event_type:eventType,\n" " val_bid:bid,\n" " val_lab:{\n" " custom:customOption\n" " }\n" " });\n" " };\n\n" " var lx_headpic = function(){lx_mge('b_p4ruj0id','click',OPTION)}; //点评M商详页-头图\n" " var lx_address = function(){lx_mge('b_uflh7iq8','click',OPTION)}; //点评M商详页-地址\n" " var lx_headphone = function(){lx_mge('b_xo8j77m5','click',OPTION)}; //点评M商详页-电话\n" " var lx_bottomphone = function(){lx_mge('b_r3kg5p2t','click',OPTION)}; //点评M商详页-吸底电话\n" " var lx_bottonbooking = function(){lx_mge('b_m27awl58','click',OPTION)}; //点评M商详页-吸底预约\n" " var lx_promo = function(){lx_mge('b_bzla7o5l','click',OPTION)}; //点评M商详页-领取优惠\n" " var lx_bottomzixun = function(){lx_mge('b_sgnmdp04','click',OPTION)}; //点评M商详页-吸底咨询\n" " var lx_dangqi = function(){lx_mge('b_vznaip5e','click',OPTION)}; //点评M商详页-查询档期\n" " var lx_dingzhi = function(){lx_mge('b_2bntzmll','click',OPTION)}; //点评M商详页-定制申请\n" " var lx_allcases = function(){lx_mge('b_hepz01kp','click',OPTION)}; //点评M商详页-全部案例\n" " var lx_case = function(){lx_mge('b_dharagxc','click',OPTION)}; //点评M商详页-案例展示\n" " var lx_allproduct = function(){lx_mge('b_37cfvedh','click',OPTION)}; //点评M商详页-全部套餐\n" " var lx_product = function(){lx_mge('b_i9nl3dzv','click',OPTION)}; //点评M商详页-套餐展示\n" " var lx_deal = function(){lx_mge('b_kwq78m9d','click',OPTION)}; //点评M商详页-团购\n" " var lx_review = function(){lx_mge('b_oyibebfz','click',OPTION)}; //点评M商详页-点评展示\n" " var lx_album = function(){lx_mge('b_tpckedbz','click',OPTION)}; //点评M商详页-会员相册\n" " var lx_shopinfo = function(){lx_mge('b_qpog17gk','click',OPTION)}; //点评M商详页-商户信息\n\n" " </script>\n" "</head>\n" "<body>\n\n" "<div class=\"epoplayer Hide\"></div>\n" "<header class=\"shop-head\">\n" " <a href=\"javascript:history.go(-1)\" class=\"back\"></a>\n" " <div class=\"placeholder\"></div>\n" " <div class=\"title\">商户详情</div>\n" " <a class=\"shop-share J_btnShare\" href=\"javascript:;\"></a>\n" "</header>\n\n\n" "<section class=\"shop-details\">\n" "<article class=\"pic\">\n" " <a onclick=\"_hip.push(['mv', {module:'viewphoto',action:'click',shopid:'24928984',categoryid:'185'}]);\">\n" " </a>\n\n" " <div class=\"img-part\">\n" " <div id=\"bannerSlide\" class=\"over-hidden\" style=\"visibility: visible;\">\n" " <div class=\"swipe-wrap\">\n" " <div class=\"img-item\" data-index=\"0\"><img src=\"//p0.meituan.net/wedding/7e24847608a706cb10bf2dd1da03273b1059646.jpg%40640w_360h_1e_1c_1l_85q%7Cwatermark%3D0\" alt=\"VIA婚礼电影\"></div>\n" " <div class=\"img-item\" data-index=\"0\"><img data-lazyload=\"//p1.meituan.net/wedding/e78e28cdd4e0a5233accf7e168a26370927987.jpg%40640w_360h_1e_1c_1l_85q%7Cwatermark%3D0\" alt=\"VIA婚礼电影\"></div>\n" " <div class=\"img-item\" data-index=\"0\"><img data-lazyload=\"//p0.meituan.net/wedding/fb24699bbbbebf9a147d82ef5f05b16e812521.jpg%40640w_360h_1e_1c_1l_85q%7Cwatermark%3D0\" alt=\"VIA婚礼电影\"></div>\n" " <div class=\"img-item\" data-index=\"0\"><img data-lazyload=\"//p0.meituan.net/wedding/0a4bf2e39240e1d773d102ad69a15159658204.jpg%40640w_360h_1e_1c_1l_85q%7Cwatermark%3D0\" alt=\"VIA婚礼电影\"></div>\n" " <div class=\"img-item\" data-index=\"0\"><img data-lazyload=\"//p0.meituan.net/wedding/e24aef07ae9585925b7ec2798caf4d5d545288.jpg%40640w_360h_1e_1c_1l_85q%7Cwatermark%3D0\" alt=\"VIA婚礼电影\"></div>\n" " </div>\n" " </div>\n\n" " <ul class=\"circles\">\n" " <li class=\"on\"></li>\n" " <li></li>\n" " <li></li>\n" " </ul>\n" " </div>\n" "</article>\n\n" "<article class=\"text\">\n" " <h1 class=\"shopname\">VIA婚礼电影</h1>\n\n" " <p>\n" " <span class=\"star star-40\"></span>\n" " <span class=\"des\">52条</span>\n" " <span class=\"line\">|</span>\n" " <span class=\"aver\">人均¥4550</span>\n" " </p>\n" "</article>\n" "</section>\n\n\n\n\n\n" "<section class=\"info-details\">\n" " <p class=\"top-border-height\"></p>\n" " <article class=\"tel bottom-border\">\n" " <a id=\"telphone\" href=\"tel:02765024020\"\n" "onclick=\"_hip.push(['mv', {module:'mshopinfoq_tel',action:'click',shopid:'24928984' }]);lx_headphone();\"\n" " >\n" " <i class=\"i-tel\"></i>65024020<span class=\"tips\">到店请提前预约</span><i class=\"arrow-ent right\"></i>\n" " </a>\n" "</article>\n" " <a href=\"/shop/24928984/map\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_address',action:'click',shopid:'24928984'}]);lx_address();\"\n" " >\n" " <article class=\"add bottom-border\">\n" " <i class=\"i-add\"></i>江汉路宝利金国际广场A座822室<i class=\"arrow-ent right\"></i>\n" " </article>\n" "</a>\n\n" "</section>\n\n" "<section class=\"pop-window\" id=\"popWindow\">\n" " <h3>确认提示</h3>\n" " <div class=\"content\">\n" " <p>当前号码:65024020</p>\n" " <div class=\"btn-area Fix\">\n" " <button class=\"J-cancel button cancelbtn\"\n" " onclick=\"_hip.push(['mv', {module:'actionbar_tel_cancel',action:'click',shopid:'24928984'}]);\"\n" " >取消</button>\n" " <a href=\"tel:02765024020\" class=\"J-call button callbtn\"\n" " onclick=\"_hip.push(['mv', {module:'actionbar_tel_accept',action:'click',shopid:'24928984'}]);\"\n" " >拨号</a>\n" " </div>\n" " </div>\n" "</section>\n" "<div class=\"pop-mask\" id=\"popMask\"></div>\n" "<!-- 新增商户服务楼层 16-02-23 shaochuanhe -->\n\n\n\n\n\n\n" "<section class=\"interest-details J_midas-21004\"></section>\n\n" "<section class=\"hotsales-details\">\n" " <p class=\"top-border-height\"></p>\n" " <ul class=\"con\">\n" " <li>\n" " <a href=\"/wed/mobile/shop/24928984/product/1233971\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_product',action:'click',shopid:'24928984',index:'0'}]);\"\n" " >\n" " <img data-lazyload=\"//p0.meituan.net/wedding/bc5e6f750cc1176fd2fa0059250da9ed961567.jpg%40280w_210h_1e_1c_1l%7Cwatermark%3D0\">\n" " <h4>「总监高级档」婚礼摄像三机位(含小摇臂)</h4>\n" " <p>\n" " <mark>¥6800</mark>\n" " <span>¥6800</span>\n" " </p>\n" " </a>\n" " </li>\n" " <li>\n" " <a href=\"/wed/mobile/shop/24928984/product/1168008\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_product',action:'click',shopid:'24928984',index:'1'}]);\"\n" " >\n" " <img data-lazyload=\"//p0.meituan.net/wedding/6b319814085ce8a1c327aa55794ba8d9767913.jpg%40280w_210h_1e_1c_1l%7Cwatermark%3D0\">\n" " <h4>东湖会所婚礼集锦『总监双机』</h4>\n" " <p>\n" " <mark>¥4800</mark>\n" " <span>¥4800</span>\n" " </p>\n" " </a>\n" " </li>\n" " <li>\n" " <a href=\"/wed/mobile/shop/24928984/product/1167708\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_product',action:'click',shopid:'24928984',index:'2'}]);\"\n" " >\n" " <img data-lazyload=\"//p1.meituan.net/wedding/68920610c7885333ecbeed8a7a92fd731037427.jpg%40280w_210h_1e_1c_1l%7Cwatermark%3D0\">\n" " <h4>婚前MV+婚礼豪华套餐档</h4>\n" " <p>\n" " <mark>¥9800</mark>\n" " <span>¥9800</span>\n" " </p>\n" " </a>\n" " </li>\n" " <li>\n" " <a href=\"/wed/mobile/shop/24928984/product/1164712\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_product',action:'click',shopid:'24928984',index:'3'}]);\"\n" " >\n" " <img data-lazyload=\"//p0.meituan.net/wedding/152f14468329801a8f4b1da39912c6e2700902.jpg%40280w_210h_1e_1c_1l%7Cwatermark%3D0\">\n" " <h4>「总监档」婚礼摄像双机位</h4>\n" " <p>\n" " <mark>¥4800</mark>\n" " <span>¥4800</span>\n" " </p>\n" " </a>\n" " </li>\n" " </ul>\n" " <p class=\"bottom-border-height\"></p>\n" "</section>\n\n\n\n\n\n\n" "<section class=\"comment-details\">\n" " <p class=\"top-border-height\"></p>\n" " <article class=\"tit\">\n" " <a href=\"/shop/24928984/review_all\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_viewreview',action:'click',shopid:'24928984'}]);lx_review();\"\n" " >\n" " <h3>用户点评(18)<i class=\"arrow-ent right\"></i></h3>\n" " </a>\n" " <p class=\"bottom-border-height\"></p>\n" " </article>\n" " <article>\n" " <a class=\"comment-list\" href=\"/shop/24928984/review_all\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_viewreview',action:'click',shopid:'24928984'}]);lx_review();\"\n" " >\n" " <img src=\"https://p1.meituan.net/userheadpicbackend/f817a0e19cba7a274b44a18fd5f11ab459248.jpg%40120w_120h_1e_1c_1l%7Cwatermark%3D0\" class=\"user-pic\">\n" " <figure class=\"comment\">\n" " <figcaption class=\"username\">减肥中的珺珺</figcaption>\n" " <p class=\"info\">\n" " <span class=\"star star-50\"></span>\n" " </p>\n" " <p class=\"comment-entry\">\n" " 婚礼准备和各项选择都是自己去跑的(除了酒店),当时下班过去探店,一工作室的帅哥啊!(我绝对不是因为这个定的)。<br/>看过他们几个片子,觉得还不错,也当场说了一下自己的想法和需求,价格比那种婚庆里面包的当然...\n\n" " </p>\n" " </figure>\n" " </a>\n" " </article>\n" " <p class=\"bottom-border-height\"></p>\n" "</section>\n\n" "<section class=\"sign-details\">\n" " <p class=\"top-border-height\"></p>\n" " <a href=\"/shop/24928984/photos\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_memalbum_more',action:'click',shopid:'24928984'}]);lx_album();\"\n" " >\n" " <span class=\"title-item\">会员相册<i class=\"arrow-ent right\"></i></span>\n" " </a>\n" " <p class=\"bottom-border-height\"></p>\n" "</section>\n" "<section class=\"sign-details\">\n" " <p class=\"top-border-height\"></p>\n" " <a href=\"/shop/24928984/msgwall\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_viewcheckin',action:'click',shopid:'24928984'}]);\"\n" " >\n" " <span class=\"title-item\">网友签到(1)<i class=\"arrow-ent right\"></i></span>\n" " </a>\n" " <p class=\"bottom-border-height\"></p>\n" "</section>\n\n" "<section class=\"shopinfor-details\">\n" " <p class=\"top-border-height\"></p>\n" " <article class=\"tit\">\n" " <a href=\"/wed/mobile/shopbrief/24928984\"\n" " onclick=\"_hip.push(['mv', {module:'mshopinfoq_shopprofile',action:'click',shopid:'24928984'}]);lx_shopinfo();\">\n" " <h3 class=\"border-bottom-gray\">商户信息<i class=\"arrow-ent right\"></i></h3>\n" " </a>\n" " <p class=\"bottom-border-height\"></p>\n" " </article>\n" " <article class=\"sersice\">\n" " <p>营业时间:周一至周日\n" "09:00-12:30\n" "14:30-18:30</p>\n" " </article>\n\n\n" " <p class=\"bottom-border-height\"></p>\n" "</section>\n\n\n\n" "<footer class=\"footer\">\n" " <a href=\"javascript:window.location='/my'\" title=\"\">我的</a><em>|</em>\n" " <a href=\"javascript:window.location='/history'\" title=\"\">最近浏览</a><em>|</em>\n" " <a href=\"javascript:window.location='/shop/addshop'\">添加商户</a><em>|</em>\n" " <a href=\"javascript:window.location='/feedback'\" title=\"\">意见反馈</a>\n" " <br>\n" " <a id=\"j-computer\" href=\"https://www.dianping.com\" title=\"\">电脑版</a><em>|</em>\n" " <a onclick=\"document.cookie='wapredirecttom=1; domain=.dianping.com; path=/';\" href=\"https://wap.dianping.com\" title=\"\">标准版</a><em>|</em>\n" " <a id=\"F_download\" href=\"javascript:void(0)\" title=\"\">客户端</a>\n" " <br>\n" " <p class=\"copyright\">copyright ©2015 dianping.com</p>\n" "</footer>\n\n" "<!-- gdajag-->\n\n\n" "<script>\n" " _hip.push(['mv', {module:'mshopinfoq_nonpaid',action:'browse',shopid:'24928984',note:''}]);\n" "</script>\n\n" "<script>\n" " var DATA = {\n" " cooperate: false,\n" " shopId: 24928984,\n" " shopName: 'VIA\\u5A5A\\u793C\\u7535\\u5F71',\n" " shopType: 55,\n" " cityId: 16,\n" " userId: 0,\n" " slotId: 21004,\n" " successUrl:'/wed/mobile/booking/wedBookingSuccess/shopId=24928984',\n" " shareUrl: 'https://m.dianping.com/shop/24928984',\n" " sharePic: '//p0.meituan.net/wedding/7e24847608a706cb10bf2dd1da03273b1059646.jpg%40120w_120h_1e_1c_1l_85q%7Cwatermark%3D0',\n" " shareDesc: 'VIA\\u5A5A\\u793C\\u7535\\u5F71',\n" " shareTitle: '商户详情',\n" " templateKey: 'ShopBottomForM',\n" " resultType: 'DTO',\n" " couponAttractUser:'0',\n" " clientSource:'0',\n" " bookingType:0,\n" " channel:0\n" " };\n" "</script>\n\n" "<div id=\"pop-top-main-share\" class=\"pop-main-wrap hide\"></div>\n\n\n\n\n\n" "<!--TODO 领券时输入手机号的弹框s-->\n" "<div class=\"overlay\"></div>\n" "<div class=\"pop-box pop-send-SMS J_pop-send-SMS\">\n" " <div class=\"pop-hd\">请输入手机号码</div>\n" " <div class=\"pop-bd\">\n" " <input type=\"number\" class=\"input-num\" value=\"\" maxlength=\"11\">\n" " <p class=\"msg\"></p>\n" " </div>\n" " <div class=\"pop-ft\">\n" " <button class=\"btn btn-cancel\">取消</button>\n" " <button class=\"btn btn-primary\">确定</button>\n" " </div>\n" "</div>\n" "<div class=\"tip-msg J_tip\"></div>\n" "<!--领券时输入手机号的弹框end-->\n\n" "<script type=\"text/javascript\" src=\"//www.dpfile.com/m/js/app/dianping/zepto.min.2ace041cc63911887f0ea7a3a3b724a2.js\"></script>\n" "<script type=\"text/javascript\" src=\"//www.dpfile.com/s/j/app/baby/common/midas.min.9a42c07defc75eaa44dbd4f6bc7502e0.js\"></script>\n" "<script type=\"text/javascript\" src=\"//www.dpfile.com/s/j/app/baby/common/swipe2.min.74ed8a11dd59fe1381acc322c04039dc.js\"></script>\n" "<script type=\"text/javascript\" src=\"//www.dpfile.com/s/j/app/baby/mobile/shop-wedding.min.5b1de8eb44fcefc09508664e434b043e.js\"></script>\n\n" "<script type=\"text/javascript\" src=\"//www.dpfile.com/s/j/app/baby/mobile/coupon_promo.min.2edce34e43eb550f49d3be369157afd4.js\"></script>\n\n" "<script type=\"text/javascript\">\n" " window.addEventListener('load', function(){\n" " setTimeout(function(){\n\n\n\n" " var scripts = [\"//www.dpfile.com/hls/hippo3.min.d30bc6de2d551d2b3f684d5486e0fedb.js\",\n" " \"//www.dpfile.com/s/j/app/mwedding/plugins/share.min.a03af364a14e4ffd4d6e27cc547dd5ee.js\",\n" " \"https://www.dpfile.com/mod/dpapp/1.7.0/src/standalone.js\"];\n\n\n" " scripts.forEach(function(src){\n" " console.log(src);\n" " var script = document.createElement('script');\n" " script.src = src;\n" " document.head.appendChild(script);\n" " });\n\n" " }, 0);\n" " });\n" "</script>\n" "<script src=\"//analytics.meituan.net/analytics.js\" type=\"text/javascript\" charset=\"utf-8\" async defer></script>\n" "</body>\n" "</html>\n") matches = re.finditer(regex, test_str) for matchNum, match in enumerate(matches, start=1): print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum))) # Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html