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

/
/
gi

Test String

Code Generator

Generated Code

const regex = /src[ *= *]['"](.*\.js[^'"]*)/gi; // Alternative syntax using RegExp constructor // const regex = new RegExp('src[ *= *][\'"](.*\\.js[^\'"]*)', 'gi') const str = `<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="es"><head><script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.uk.8Wsso_8ylQo.O/m=auth/exm=plus,plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AItRSTNfGdKjky6Lry6QDOZ198k58lZp_A/cb=gapi.loaded_2" async=""></script><script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.uk.8Wsso_8ylQo.O/m=plus/exm=plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AItRSTNfGdKjky6Lry6QDOZ198k58lZp_A/cb=gapi.loaded_1" async=""></script> <meta content="text/html; charset=utf-8" http-equiv="content-type" /> <title>¡Venta de año nuevo en MacPaw! Consigue CleanMyMac con 50% de descuento.</title> <meta content="Oferta de Año Nuevo: CleanMyMac 2 con 50% de descuento" property="og:title" /> <meta content="http://macpaw.com/images/products/CleanMyMac_small.png" property="og:image" /> <meta content="Hagamos del 2014 &quot;El año de la Mac limpia&quot;. Compre CleanMyMac con 50% de descuento ahora. Oferta válida hasta el 2 de Enero del 2014." property="og:description" /> <meta content="http://macpaw.com/holiday13_es" property="og:url" /> <meta content="CleanMyMac es una solución todo en uno para limpiar de una manera segura tu Mac. ¡Ahora con 50% de descuento!" name="description" /> <meta content="width=device-width" name="viewport" /> <script src="http://dnn506yrbagrg.cloudfront.net/pages/scripts/0011/1236.js?388910" async="" type="text/javascript"></script><script async="" src="//connect.facebook.net/en_US/fp.js"></script><script type="text/javascript" async="" src="http://mc.yandex.ru/metrika/watch.js"></script><script src="http://edge.quantserve.com/quant.js" async="" type="text/javascript"></script><script type="text/javascript" async="" src="http://stats.g.doubleclick.net/dc.js"></script><script id="twitter-wjs" src="http://platform.twitter.com/widgets.js"></script><script type="text/javascript" async="" src="https://apis.google.com/js/platform.js" gapi_processed="true"></script><script id="facebook-jssdk" src="//connect.facebook.net/es_ES/all.js#xfbml=1"></script><script src="https://apis.google.com/_/scs/apps-static/_/js/k=oz.gapi.uk.8Wsso_8ylQo.O/m=plusone/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AItRSTNfGdKjky6Lry6QDOZ198k58lZp_A/cb=gapi.loaded_0" async=""></script><script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="/js/jstracker/jstracker.js" type="text/javascript"></script> <script src="/js/landings/land176/script.js" type="text/javascript"></script> <link type="image/x-icon" href="/images/favicon.png" rel="icon" /> <link media="screen" type="text/css" href="/css/landings/land176/style_es.css" rel="stylesheet" /> <link type="text/css" rel="stylesheet" href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&amp;subset=latin,cyrillic" /> <!-- <link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'> --> <!-- Start Visual Website Optimizer Asynchronous Code --> <script type="text/javascript"> var _vwo_code=(function(){ var account_id=31766, settings_tolerance=2000, library_tolerance=2500, use_existing_jquery=false, // DO NOT EDIT BELOW THIS LINE f=false,d=document;return{use_existing_jquery:function(){return use_existing_jquery;},library_tolerance:function(){return library_tolerance;},finish:function(){if(!f){f=true;var a=d.getElementById('_vis_opt_path_hides');if(a)a.parentNode.removeChild(a);}},finished:function(){return f;},load:function(a){var b=d.createElement('script');b.src=a;b.type='text/javascript';b.innerText;b.onerror=function(){_vwo_code.finish();};d.getElementsByTagName('head')[0].appendChild(b);},init:function(){settings_timer=setTimeout('_vwo_code.finish()',settings_tolerance);this.load('//dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&amp;u='+encodeURIComponent(d.URL)+'&amp;r='+Math.random());var a=d.createElement('style'),b='body{opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;}',h=d.getElementsByTagName('head')[0];a.setAttribute('id','_vis_opt_path_hides');a.setAttribute('type','text/css');if(a.styleSheet)a.styleSheet.cssText=b;else a.appendChild(d.createTextNode(b));h.appendChild(a);return settings_timer;}};}());_vwo_settings_timer=_vwo_code.init(); </script><script src="//dev.visualwebsiteoptimizer.com/j.php?a=31766&amp;u=http%3A%2F%2Fmacpaw.com%2Flandings%2Fland180&amp;r=0.715326549743586" type="text/javascript"></script> <!-- End Visual Website Optimizer Asynchronous Code --> <style type="text/css">.fb_hidden{position:absolute;top:-10000px;z-index:10001}.fb_invisible{display:none}.fb_reset{background:none;border:0;border-spacing:0;color:#000;cursor:auto;direction:ltr;font-family:"lucida grande", tahoma, verdana, arial, sans-serif;font-size:11px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:1;margin:0;overflow:visible;padding:0;text-align:left;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;visibility:visible;white-space:normal;word-spacing:normal}.fb_reset&gt;div{overflow:hidden}.fb_link img{border:none} .fb_dialog{background:rgba(82, 82, 82, .7);position:absolute;top:-10000px;z-index:10001}.fb_reset .fb_dialog_legacy{overflow:visible}.fb_dialog_advanced{padding:10px;-moz-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}.fb_dialog_content{background:#fff;color:#333}.fb_dialog_close_icon{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;_background-image:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yL/r/s816eWC-2sl.gif);cursor:pointer;display:block;height:15px;position:absolute;right:18px;top:17px;width:15px}.fb_dialog_mobile .fb_dialog_close_icon{top:5px;left:5px;right:auto}.fb_dialog_padding{background-color:transparent;position:absolute;width:1px;z-index:-1}.fb_dialog_close_icon:hover{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent;_background-image:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yL/r/s816eWC-2sl.gif)}.fb_dialog_close_icon:active{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yq/r/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent;_background-image:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yL/r/s816eWC-2sl.gif)}.fb_dialog_loader{background-color:#f2f2f2;border:1px solid #606060;font-size:24px;padding:20px}.fb_dialog_top_left,.fb_dialog_top_right,.fb_dialog_bottom_left,.fb_dialog_bottom_right{height:10px;width:10px;overflow:hidden;position:absolute}.fb_dialog_top_left{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/8YeTNIlTZjm.png) no-repeat 0 0;left:-10px;top:-10px}.fb_dialog_top_right{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/8YeTNIlTZjm.png) no-repeat 0 -10px;right:-10px;top:-10px}.fb_dialog_bottom_left{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/8YeTNIlTZjm.png) no-repeat 0 -20px;bottom:-10px;left:-10px}.fb_dialog_bottom_right{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ye/r/8YeTNIlTZjm.png) no-repeat 0 -30px;right:-10px;bottom:-10px}.fb_dialog_vert_left,.fb_dialog_vert_right,.fb_dialog_horiz_top,.fb_dialog_horiz_bottom{position:absolute;background:#525252;filter:alpha(opacity=70);opacity:.7}.fb_dialog_vert_left,.fb_dialog_vert_right{width:10px;height:100%}.fb_dialog_vert_left{margin-left:-10px}.fb_dialog_vert_right{right:0;margin-right:-10px}.fb_dialog_horiz_top,.fb_dialog_horiz_bottom{width:100%;height:10px}.fb_dialog_horiz_top{margin-top:-10px}.fb_dialog_horiz_bottom{bottom:0;margin-bottom:-10px}.fb_dialog_iframe{line-height:0}.fb_dialog_content .dialog_title{background:#6d84b4;border:1px solid #3b5998;color:#fff;font-size:14px;font-weight:bold;margin:0}.fb_dialog_content .dialog_title&gt;span{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/yd/r/Cou7n-nqK52.gif) no-repeat 5px 50%;float:left;padding:5px 0 7px 26px}body.fb_hidden{-webkit-transform:none;height:100%;margin:0;overflow:visible;position:absolute;top:-10000px;left:0;width:100%}.fb_dialog.fb_dialog_mobile.loading{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/ya/r/3rhSv5V8j3o.gif) white no-repeat 50% 50%;min-height:100%;min-width:100%;overflow:hidden;position:absolute;top:0;z-index:10001}.fb_dialog.fb_dialog_mobile.loading.centered{max-height:590px;min-height:590px;max-width:500px;min-width:500px}#fb-root #fb_dialog_ipad_overlay{background:rgba(0, 0, 0, .45);position:absolute;left:0;top:0;width:100%;min-height:100%;z-index:10000}#fb-root #fb_dialog_ipad_overlay.hidden{display:none}.fb_dialog.fb_dialog_mobile.loading iframe{visibility:hidden}.fb_dialog_content .dialog_header{-webkit-box-shadow:white 0 1px 1px -1px inset;background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#738ABA), to(#2C4987));border-bottom:1px solid;border-color:#1d4088;color:#fff;font:14px Helvetica, sans-serif;font-weight:bold;text-overflow:ellipsis;text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0;vertical-align:middle;white-space:nowrap}.fb_dialog_content .dialog_header table{-webkit-font-smoothing:subpixel-antialiased;height:43px;width:100%}.fb_dialog_content .dialog_header td.header_left{font-size:12px;padding-left:5px;vertical-align:middle;width:60px}.fb_dialog_content .dialog_header td.header_right{font-size:12px;padding-right:5px;vertical-align:middle;width:60px}.fb_dialog_content .touchable_button{background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(#4966A6), color-stop(.5, #355492), to(#2A4887));border:1px solid #29447e;-webkit-background-clip:padding-box;-webkit-border-radius:3px;-webkit-box-shadow:rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;display:inline-block;margin-top:3px;max-width:85px;line-height:18px;padding:4px 12px;position:relative}.fb_dialog_content .dialog_header .touchable_button input{border:none;background:none;color:#fff;font:12px Helvetica, sans-serif;font-weight:bold;margin:2px -12px;padding:2px 6px 3px 6px;text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0}.fb_dialog_content .dialog_header .header_center{color:#fff;font-size:16px;font-weight:bold;line-height:18px;text-align:center;vertical-align:middle}.fb_dialog_content .dialog_content{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/y9/r/jKEcVPZFk-2.gif) no-repeat 50% 50%;border:1px solid #555;border-bottom:0;border-top:0;height:150px}.fb_dialog_content .dialog_footer{background:#f2f2f2;border:1px solid #555;border-top-color:#ccc;height:40px}#fb_dialog_loader_close{float:left}.fb_dialog.fb_dialog_mobile .fb_dialog_close_button{text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0}.fb_dialog.fb_dialog_mobile .fb_dialog_close_icon{visibility:hidden} .fb_iframe_widget{display:inline-block;position:relative}.fb_iframe_widget span{display:inline-block;position:relative;text-align:justify}.fb_iframe_widget iframe{position:absolute}.fb_iframe_widget_lift{z-index:1}.fb_hide_iframes iframe{position:relative;left:-10000px}.fb_iframe_widget_loader{position:relative;display:inline-block}.fb_iframe_widget_fluid{display:inline}.fb_iframe_widget_fluid span{width:100%}.fb_iframe_widget_loader iframe{min-height:32px;z-index:2;zoom:1}.fb_iframe_widget_loader .FB_Loader{background:url(https://fbstatic-a.akamaihd.net/rsrc.php/v2/y9/r/jKEcVPZFk-2.gif) no-repeat;height:32px;width:32px;margin-left:-16px;position:absolute;left:50%;z-index:4} .fb_connect_bar_container div,.fb_connect_bar_container span,.fb_connect_bar_container a,.fb_connect_bar_container img,.fb_connect_bar_container strong{background:none;border-spacing:0;border:0;direction:ltr;font-style:normal;font-variant:normal;letter-spacing:normal;line-height:1;margin:0;overflow:visible;padding:0;text-align:left;text-decoration:none;text-indent:0;text-shadow:none;text-transform:none;visibility:visible;white-space:normal;word-spacing:normal;vertical-align:baseline}.fb_connect_bar_container{position:fixed;left:0 !important;right:0 !important;height:42px !important;padding:0 25px !important;margin:0 !important;vertical-align:middle !important;border-bottom:1px solid #333 !important;background:#3b5998 !important;z-index:99999999 !important;overflow:hidden !important}.fb_connect_bar_container_ie6{position:absolute;top:expression(document.compatMode=="CSS1Compat"? document.documentElement.scrollTop+"px":body.scrollTop+"px")}.fb_connect_bar{position:relative;margin:auto;height:100%;width:100%;padding:6px 0 0 0 !important;background:none;color:#fff !important;font-family:"lucida grande", tahoma, verdana, arial, sans-serif !important;font-size:13px !important;font-style:normal !important;font-variant:normal !important;font-weight:normal !important;letter-spacing:normal !important;line-height:1 !important;text-decoration:none !important;text-indent:0 !important;text-shadow:none !important;text-transform:none !important;white-space:normal !important;word-spacing:normal !important}.fb_connect_bar a:hover{color:#fff}.fb_connect_bar .fb_profile img{height:30px;width:30px;vertical-align:middle;margin:0 6px 5px 0}.fb_connect_bar div a,.fb_connect_bar span,.fb_connect_bar span a{color:#bac6da;font-size:11px;text-decoration:none}.fb_connect_bar .fb_buttons{float:right;margin-top:7px} .fbpluginrecommendationsbarleft,.fbpluginrecommendationsbarright{position:fixed !important;bottom:0;z-index:999}.fbpluginrecommendationsbarleft{left:10px}.fbpluginrecommendationsbarright{right:10px}</style><script async="true" type="text/javascript" src="http://a.adroll.com/j/roundtrip.js"></script><script async="true" type="text/javascript" src="//d.adroll.com/pixel/ZLAGHNPXNNAIHM3BK6YMNZ/7ZE6SKSR3BDMTG2KK7T3T2?pv=99977324159.53563&amp;cookie=ZLAGHNPXNNAIHM3BK6YMNZ%3A1%7C7ZE6SKSR3BDMTG2KK7T3T2%3A1%7CD2ECO76SFRAKLNT7EYBLAA%3A1&amp;keyw="></script><div style="width: 1px; height: 1px; display: inline;"><img width="1" height="1" src="http://d.adroll.com/cm/f/out" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://d.adroll.com/cm/w/out" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://d.adroll.com/cm/x/out" alt="" style="border-style:none;" /> <img width="1" height="1" src="https://www.facebook.com/tr?id=473242746031568&amp;cd[segment_eid]=D2ECO76SFRAKLNT7EYBLAA" style="display:none" alt="" /><img width="1" height="1" src="http://www.googleadservices.com/pagead/conversion/1011350631/?label=YJ5bCInJ5gQQ5_if4gM&amp;guid=ON&amp;script=0&amp;ord=6550933685005634" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://d.adroll.com/cm/g/out?google_nid=adroll2" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://ib.adnxs.com/seg?add=415956&amp;t=2" /> <img width="1" height="1" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1011350631/?value=0&amp;label=1vRCCJns9gQQ5_if4gM&amp;guid=ON&amp;script=0&amp;ord=6550933685005634" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://ib.adnxs.com/seg?add=424744&amp;t=2" /> <img width="1" height="1" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/1011350631/?value=0&amp;label=8ypaCMnokAUQ5_if4gM&amp;guid=ON&amp;script=0&amp;ord=6550933685005634" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://ib.adnxs.com/seg?add=434273&amp;t=2" /> <img width="1" height="1" src="https://www.facebook.com/tr?id=473242746031568&amp;cd[segment_eid]=XTSLB5PLRZG7RB5OGMDU36" style="display:none" alt="" /><img width="1" height="1" src="http://www.googleadservices.com/pagead/conversion/1011350631/?label=1vRCCJns9gQQ5_if4gM&amp;guid=ON&amp;script=0&amp;ord=6550933685005634" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://d.adroll.com/cm/g/out?google_nid=adroll2" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://ib.adnxs.com/seg?add=424744&amp;t=2" /> <img width="1" height="1" src="https://www.facebook.com/tr?id=473242746031568&amp;cd[segment_eid]=D6UZKTZPDNC6HLHH6V7TGJ" style="display:none" alt="" /><img width="1" height="1" src="http://www.googleadservices.com/pagead/conversion/1011350631/?label=8ypaCMnokAUQ5_if4gM&amp;guid=ON&amp;script=0&amp;ord=6550933685005634" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://d.adroll.com/cm/g/out?google_nid=adroll2" alt="" style="border-style:none;" /> <img width="1" height="1" src="http://ib.adnxs.com/seg?add=434273&amp;t=2" /> </div></head> <body data-twttr-rendered="true"><div id="mf_div" style="display: none;"></div> <link rel="stylesheet" type="text/css" href="/css/landingender.css" /> <script> function closeShare(){ \$("#tbox").fadeOut(); \$('.darkness').fadeOut(); } \$(document).ready(function(){ \$('.contanter').css({'height':(\$('.t_content').height()+20) + 'px'}); setTimeout("\$('.close_tbox').fadeIn()",1000); }); </script> <div id="tbox"> <div onclick="closeShare()" class="close_tbox" style="display: block;"></div> <input type="hidden" autocomplete="off" value="0" id="msg_id" /> <div class="t_header"> <a class="t_logo" href="http://macpaw.com/"></a> <div></div> <br class="clear" /> </div> <div class="contanter" style="height: 309px;"> <div style="display:block;" class="t_content"> Oops! This promotion is over. <br /> <div class="innerMsg"> But we always have something for you!<br /> This coupon <a target="_blank" href="/store?coupon=ACTIONOVER13&amp;utm_source=macpaw-landings&amp;utm_campaign=landing-end">ACTIONOVER13</a> gives you a 5% discount. Click it or type it on our store. <br /><br /> Join our communities to stay informed about future sales and promotions.<br /> <div style="padding-top:17px; width:100px;" class="soc_btn"> <!-- like --> <div id="fb-root" class=" fb_reset"><div style="position: absolute; top: -10000px; height: 0px; width: 0px;"><div><iframe frameborder="0" name="fb_xdm_frame_http" allowtransparency="true" scrolling="no" id="fb_xdm_frame_http" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="http://static.ak.facebook.com/connect/xd_arbiter/dgdTycPTSRj.js?version=41#channel=fe6cb88b3f6e86&amp;origin=http%3A%2F%2Fmacpaw.com"></iframe><iframe frameborder="0" name="fb_xdm_frame_https" allowtransparency="true" scrolling="no" id="fb_xdm_frame_https" aria-hidden="true" title="Facebook Cross Domain Communication Frame" tabindex="-1" style="border: medium none;" src="https://s-static.ak.facebook.com/connect/xd_arbiter/dgdTycPTSRj.js?version=41#channel=fe6cb88b3f6e86&amp;origin=http%3A%2F%2Fmacpaw.com"></iframe></div></div><div style="position: absolute; top: -10000px; height: 0px; width: 0px;"><div></div></div></div><script src="https://connect.facebook.net/en_US/all.js#appId=116977231727172&amp;xfbml=1"></script><fb:like font="lucida grande" show_faces="false" width="160px" layout="button_count" send="false" href="http://www.facebook.com/cleanmymac" class=" fb_iframe_widget" fb-xfbml-state="rendered" fb-iframe-plugin-query="app_id=116977231727172&amp;font=lucida%20grande&amp;href=http%3A%2F%2Fwww.facebook.com%2Fcleanmymac&amp;layout=button_count&amp;locale=en_US&amp;sdk=joey&amp;send=false&amp;show_faces=false&amp;width=160"><span style="vertical-align: bottom; width: 91px; height: 20px;"><iframe width="160px" height="1000px" frameborder="0" name="f2a36bd3834b66" allowtransparency="true" scrolling="no" title="fb:like Facebook Social Plugin" style="border: medium none; visibility: visible; width: 91px; height: 20px;" src="http://www.facebook.com/plugins/like.php?app_id=116977231727172&amp;channel=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter%2FdgdTycPTSRj.js%3Fversion%3D41%23cb%3Df97eeb04b90dcc%26domain%3Dmacpaw.com%26origin%3Dhttp%253A%252F%252Fmacpaw.com%252Ffe6cb88b3f6e86%26relation%3Dparent.parent&amp;font=lucida%20grande&amp;href=http%3A%2F%2Fwww.facebook.com%2Fcleanmymac&amp;layout=button_count&amp;locale=en_US&amp;sdk=joey&amp;send=false&amp;show_faces=false&amp;width=160" class=""></iframe></span></fb:like> </div> </div> <div class="soc_btn twitter_btn"> <iframe frameborder="0" id="twitter-widget-1" scrolling="no" allowtransparency="true" src="http://platform.twitter.com/widgets/follow_button.1400006231.html#_=1400078849783&amp;id=twitter-widget-1&amp;lang=es&amp;screen_name=MacPaw&amp;show_count=false&amp;show_screen_name=true&amp;size=m" class="twitter-follow-button twitter-follow-button" title="Twitter Follow Button" data-twttr-rendered="true" style="width: 124px; height: 20px;"></iframe> <script type="text/javascript" src="https://platform.twitter.com/widgets.js"></script> </div> <div class="soc_btn g_btn"> <!-- Place this tag in your head or just before your close body tag --> <script src="https://apis.google.com/js/plusone.js" type="text/javascript" gapi_processed="true"></script> <!-- Place this tag where you want the +1 button to render --> <div style="text-indent: 0px; margin: 0px; padding: 0px; background: none repeat scroll 0% 0% transparent; border-style: none; float: none; line-height: normal; font-size: 1px; vertical-align: baseline; display: inline-block; width: 90px; height: 20px;" id="___plusone_0"><iframe width="100%" frameborder="0" hspace="0" marginheight="0" marginwidth="0" scrolling="no" style="position: static; top: 0px; width: 90px; margin: 0px; border-style: none; left: 0px; visibility: visible; height: 20px;" tabindex="0" vspace="0" id="I0_1400078849686" name="I0_1400078849686" src="https://apis.google.com/_/+1/fastbutton?usegapi=1&amp;size=medium&amp;origin=http%3A%2F%2Fmacpaw.com&amp;url=http%3A%2F%2Fmacpaw.com%2F&amp;gsrc=3p&amp;ic=1&amp;jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.uk.8Wsso_8ylQo.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Fz%3Dzcms%2Frs%3DAItRSTNfGdKjky6Lry6QDOZ198k58lZp_A#_methods=onPlusOne%2C_ready%2C_close%2C_open%2C_resizeMe%2C_renderstart%2Concircled%2Cdrefresh%2Cerefresh&amp;id=I0_1400078849686&amp;parent=http%3A%2F%2Fmacpaw.com&amp;pfname=&amp;rpctoken=18198984" data-gapiattached="true" title="+1"></iframe></div> </div> <br clear="all" /> <div class="innerMsg"> You can try CleanMyMac for <a title="CleanMyMac free download" href="/download/cleanmymac?utm_source=macpaw-landings&amp;utm_campaign=landing-end">free here</a>. </div> Thank you for your visit! </div> </div> </div> <div class="darkness"></div> <div class="container"> <div class="header_wrap"> <div id="go_up"></div> <div class="snow_storm"> <div class="header"> <a class="macpaw_logo" target="_blank" href="/"></a> <div class="header_text">CleanMyMac 2</div> <div class="top_text">50%</div><div class="off">de descuento</div> <a class="go_btn_top" href="#go_down"></a> <div class="head_text2"> <span>Hagamos del 2014,</span><br /> "El año de la Mac limpia" </div> <div class="header_content"> Descarga CleanMyMac 2 y haz que tu Mac esté esté mas limpia y rápida que nunca antes. <br /> Ahora mismo, aproveche el <a target="_blank" href="/es/store/cleanmymac?coupon=frosty14">50% de descuento de CleanMyMac 2</a> <br /> con nuestra promoción limitada de Año Nuevo. </div> <a class="top_btn" target="_blank" href="/es/store/cleanmymac?coupon=frosty14">Comprar ahora con 50% de descuento </a> <a class="try_it" target="_blank" href="/download/cleanmymac">Pruébalo gratis</a><br /> <div class="valid">Válido hasta el 2 de Enero del 2014 (PST)</div> </div> </div> </div> <div class="content_block"> <div id="go_down"></div> <div class="content_line"> <div class="content"> <div class="cmm_icon"> <div class="clean_cmm" style="background-position: 0px -503px;"></div> </div> <div class="content_header"> CleanMyMac 2: Es más que <br />solo limpiar tu Mac. </div> <ul> <li>Elimina más basura que cualquier otra herramienta</li> <li>Desinstala y restablece las aplicaciones</li> <li>Encuentra archivos viejos y descuidados que desperdician espacio</li> <li>Reduce el tamaño de tu biblioteca de iPhoto</li> <li>Interfaz fácil de usar, con drag and drop</li> <li>Optimizado para ser increíblemente rápido</li> <li>¡Ahorra horas de trabajo de limpieza!</li> </ul> <a class="top_btn" target="_blank" href="/es/store/cleanmymac?coupon=frosty14">Comprar ahora con 50% de descuento</a> <a class="try_it" target="_blank" href="/download/cleanmymac">Pruébalo gratis</a> <a class="go_btn_bottom" href="#go_up"></a><br /> <div class="valid">Válido hasta el 2 de Enero del 2014 (PST)</div> <div class="top_text">50%</div><div class="off">de descuento</div> </div> </div> </div> <div class="footer_block"> <div class="footer_wrap"> <div class="footer"> <div class="social"> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/es_ES/all.js#xfbml=1"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <!-- Place this render call where appropriate --> <script type="text/javascript"> (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/platform.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })(); </script> <div class="facebook"> <div data-type="button_count" data-href="http://macpaw.com/holiday13_es" class="fb-share-button fb_iframe_widget" fb-xfbml-state="rendered" fb-iframe-plugin-query="app_id=116977231727172&amp;href=http%3A%2F%2Fmacpaw.com%2Fholiday13_es&amp;locale=en_US&amp;sdk=joey&amp;type=button_count"><span style="vertical-align: bottom; width: 84px; height: 20px;"><iframe width="1000px" height="1000px" frameborder="0" name="f2ef7118481a5ea" allowtransparency="true" scrolling="no" title="fb:share_button Facebook Social Plugin" style="border: medium none; visibility: visible; width: 84px; height: 20px;" src="http://www.facebook.com/plugins/share_button.php?app_id=116977231727172&amp;channel=http%3A%2F%2Fstatic.ak.facebook.com%2Fconnect%2Fxd_arbiter%2FdgdTycPTSRj.js%3Fversion%3D41%23cb%3Df275ad1461062ce%26domain%3Dmacpaw.com%26origin%3Dhttp%253A%252F%252Fmacpaw.com%252Ffe6cb88b3f6e86%26relation%3Dparent.parent&amp;href=http%3A%2F%2Fmacpaw.com%2Fholiday13_es&amp;locale=en_US&amp;sdk=joey&amp;type=button_count" class=""></iframe></span></div> </div> <div class="twitter"> <iframe frameborder="0" id="twitter-widget-0" scrolling="no" allowtransparency="true" src="http://platform.twitter.com/widgets/tweet_button.1400006231.html#_=1400078849773&amp;count=horizontal&amp;id=twitter-widget-0&amp;lang=es&amp;original_referer=http%3A%2F%2Fmacpaw.com%2Flandings%2Fland180&amp;size=m&amp;text=%C2%A1Venta%20de%20a%C3%B1o%20nuevo%20en%20MacPaw%21%20Consigue%20CleanMyMac%20con%2050%25%20de%20descuento.&amp;url=http%3A%2F%2Fmacpaw.com%2Fholiday13_es" class="twitter-share-button twitter-tweet-button twitter-share-button twitter-count-horizontal" title="Twitter Tweet Button" data-twttr-rendered="true" style="width: 117px; height: 20px;"></iframe> <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script> </div> <div class="google_plus"> <div style="text-indent: 0px; margin: 0px; padding: 0px; background: none repeat scroll 0% 0% transparent; border-style: none; float: none; line-height: normal; font-size: 1px; vertical-align: baseline; display: inline-block; width: 112px; height: 20px;" id="___plus_0"><iframe width="100%" frameborder="0" hspace="0" marginheight="0" marginwidth="0" scrolling="no" style="position: static; top: 0px; width: 112px; margin: 0px; border-style: none; left: 0px; visibility: visible; height: 20px;" tabindex="0" vspace="0" id="I1_1400078849698" name="I1_1400078849698" src="https://apis.google.com/_/+1/sharebutton?plusShare=true&amp;usegapi=1&amp;annotation=bubble&amp;action=share&amp;origin=http%3A%2F%2Fmacpaw.com&amp;url=http%3A%2F%2Fmacpaw.com%2Flandings%2Fland180&amp;gsrc=3p&amp;ic=1&amp;jsh=m%3B%2F_%2Fscs%2Fapps-static%2F_%2Fjs%2Fk%3Doz.gapi.uk.8Wsso_8ylQo.O%2Fm%3D__features__%2Fam%3DAQ%2Frt%3Dj%2Fd%3D1%2Fz%3Dzcms%2Frs%3DAItRSTNfGdKjky6Lry6QDOZ198k58lZp_A#_methods=onPlusOne%2C_ready%2C_close%2C_open%2C_resizeMe%2C_renderstart%2Concircled%2Cdrefresh%2Cerefresh%2Conload&amp;id=I1_1400078849698&amp;parent=http%3A%2F%2Fmacpaw.com&amp;pfname=&amp;rpctoken=22643329" data-gapiattached="true" title="+Поділитися"></iframe></div> </div> </div> <a href="/policy" class="f_link f_link_1">Política de privacidad</a> <span class="f_span">•</span> <a href="/eula" class="f_link f_link_2">Acuerdo de usuario</a> <span class="f_span">•</span> <a href="/refund-policy" class="f_link f_link_3">Política de reembolso</a> <span class="f_span">•</span> <a href="/support/cleanmymac/knowledgebase/how-to-uninstall-cleanmymac-2" class="f_link f_link_4">Desinstalar</a> <span class="copyright">Copyright © 2014 MacPaw Inc.</span> </div> </div> </div> </div> <!-- Google Code for Landing no download Remarketing List --> <script type="text/javascript"> /* &lt;![CDATA[ */ var google_conversion_id = 1035919951; var google_conversion_language = "en"; var google_conversion_format = "3"; var google_conversion_color = "666666"; var google_conversion_label = "fMP6CJ3MlgIQz8T77QM"; var google_conversion_value = 0; /* ]]&gt; */ </script> <script src="http://www.googleadservices.com/pagead/conversion.js" type="text/javascript"> </script><img width="1" height="1" border="0" src="http://www.googleadservices.com/pagead/conversion/1035919951/?random=1400078849392&amp;cv=7&amp;fst=1400078849392&amp;num=1&amp;fmt=3&amp;value=0&amp;label=fMP6CJ3MlgIQz8T77QM&amp;bg=666666&amp;hl=en&amp;guid=ON&amp;u_h=1024&amp;u_w=1366&amp;u_ah=1000&amp;u_aw=1301&amp;u_cd=16&amp;u_his=5&amp;u_tz=180&amp;u_java=true&amp;u_nplug=6&amp;u_nmime=81&amp;frm=0&amp;url=http%3A//macpaw.com/landings/land180" alt="" /> <noscript> &lt;div style="display:inline;"&gt; &lt;img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/1035919951/?label=fMP6CJ3MlgIQz8T77QM&amp;amp;guid=ON&amp;amp;script=0"/&gt; &lt;/div&gt; </noscript> <!-- Google Analytics Social Button Tracking --> <!-- <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-6417209-1']); _gaq.push([ '_addIgnoredRef', 'macpaw.com' ]); _gaq.push(['_setAllowLinker', true]); _gaq.push(['_setSiteSpeedSampleRate', 10]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> --> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-6417209-1']); _gaq.push([ '_addIgnoredRef', 'macpaw.com' ]); _gaq.push(['_setAllowLinker', true]); _gaq.push(['_setSiteSpeedSampleRate', 10]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); window.onload = function() { if(_gaq.I==undefined){ _gaq.push(['_trackEvent', 'tracking_script', 'loaded', 'ga.js', ,true]); ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; s = document.getElementsByTagName('script')[0]; gaScript = s.parentNode.insertBefore(ga, s); } else { _gaq.push(['_trackEvent', 'tracking_script', 'loaded', 'dc.js', ,true]); } }; </script> <script type="text/javascript"> setTimeout(function(){var a=document.createElement("script"); var b=document.getElementsByTagName('script')[0]; a.src=document.location.protocol+"//dnn506yrbagrg.cloudfront.net/pages/scripts/0011/1236.js?"+Math.floor(new Date().getTime()/3600000); a.async=true;a.type="text/javascript";b.parentNode.insertBefore(a,b)}, 1); </script> <!-- Start Quantcast Tag --> <script type="text/javascript"> var _qevents = _qevents || []; (function() { var elem = document.createElement('script'); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem, scpt); })(); _qevents.push( {qacct:"p-6Qr0GsdXhZnmw",labels:"_fp.event.Landing Page"} ); </script> <noscript> &lt;img src="//pixel.quantserve.com/pixel/p-6Qr0GsdXhZnmw.gif?labels=_fp.event.Landing+Page" style="display: none;" border="0" height="1" width="1" alt="Quantcast"/&gt; </noscript> <!-- End Quantcast tag --> <!--AdRoll--> <script type="text/javascript"> adroll_adv_id = "ZLAGHNPXNNAIHM3BK6YMNZ"; adroll_pix_id = "7ZE6SKSR3BDMTG2KK7T3T2"; (function () { var oldonload = window.onload; window.onload = function(){ __adroll_loaded=true; var scr = document.createElement("script"); var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com"); scr.setAttribute('async', 'true'); scr.type = "text/javascript"; scr.src = host + "/j/roundtrip.js"; ((document.getElementsByTagName('head') || [null])[0] || document.getElementsByTagName('script')[0].parentNode).appendChild(scr); if(oldonload){oldonload()}}; }()); </script> <!--/AdRoll--> <!-- Yandex.Metrika counter --> <script type="text/javascript"> (function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter12883906 = new Ya.Metrika({id:12883906, enableAll: true, webvisor:true}); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f); } else { f(); } })(document, window, "yandex_metrika_callbacks"); </script> <noscript>&lt;div&gt;&lt;img src="//mc.yandex.ru/watch/12883906" style="position:absolute; left:-9999px;" alt="" /&gt;&lt;/div&gt;</noscript> <!-- /Yandex.Metrika counter --> <!--Facebook Conversion Tracking--> <script type="text/javascript"> var fb_param = {}; fb_param.pixel_id = '6009269206528'; fb_param.value = '0.00'; fb_param.currency = 'USD'; (function(){ var fpw = document.createElement('script'); fpw.async = true; fpw.src = '//connect.facebook.net/en_US/fp.js'; var ref = document.getElementsByTagName('script')[0]; ref.parentNode.insertBefore(fpw, ref); })(); </script> <!-- MediaForge pixel --> <script src="http://tags.mediaforge.com/js/1230%05/?prodID=CleanMyMac2" type="text/javascript"></script> <!-- End MediaForge pixel --> <!-- TheTradeDesk pixel --> <img width="1" height="1" src="//insight.adsrvr.org/track/evnt/?adv=ow8715z&amp;ct=0:zu19wc2j&amp;fmt=3" alt="" style="border-style:none;" /> <!-- End TheTradeDesk pixel --> <noscript>&lt;img height="1" width="1" alt="" style="display:none" src="https://www.facebook.com/offsite_event.php?id=6009269206528&amp;amp;value=0&amp;amp;currency=USD" /&gt;</noscript> <!--/Facebook Conversion Tracking--> <iframe name="oauth2relay833474516" id="oauth2relay833474516" src="https://accounts.google.com/o/oauth2/postmessageRelay?parent=http%3A%2F%2Fmacpaw.com#rpctoken=1519867317&amp;forcesecure=1" style="width: 1px; height: 1px; position: absolute; top: -100px;" tabindex="-1"></iframe></body><canvas id="fxdriver-screenshot-canvas" style="display: none;" width="1267" height="1698"></canvas></html> `; // Reset `lastIndex` if this regex is defined globally // regex.lastIndex = 0; let m; while ((m = regex.exec(str)) !== null) { // This is necessary to avoid infinite loops with zero-width matches if (m.index === regex.lastIndex) { regex.lastIndex++; } // The result can be accessed through the `m`-variable. m.forEach((match, groupIndex) => { console.log(`Found match, group ${groupIndex}: ${match}`); }); }

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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions