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

/
/

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"alt=\"(.+?)\"" test_str = (" <?xml version=\"1.0\" encoding=\"utf-8\"?>\n" "<!DOCTYPE html PUBLIC \"-//WAPFORUM//DTD XHTML Mobile 1.0//EN\" \"http://www.wapforum.org/DTD/xhtml-mobile10.dtd\">\n" "<html xmlns=\"http://www.w3.org/1999/xhtml\" class=\"no_js\">\n" "<head>\n" "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n" "<meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n" "<meta name=\"format-detection\" content=\"telephone=no\" />\n" "<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" />\n" "<meta name=\"MobileOptimized\" content=\"176\" />\n" "<meta name=\"HandheldFriendly\" content=\"True\" />\n" "<base id=\"base\">\n" "<meta name=\"robots\" content=\"noindex,nofollow\" />\n" "<title>Павел Дуров</title>\n" "<script>\n" "document.querySelector('html').setAttribute('class', 'js_yes');\n" "</script>\n" "<script type=\"text/javascript\">\n" "<!--\n" "(function(k,a,d,e,f){function l(){var c=function(){var b=!1;try{b=new XMLHttpRequest}catch(a){try{b=new ActiveXObject(\"Msxml2.XMLHTTP\")}catch(d){try{b=new ActiveXObject(\"Microsoft.XMLHTTP\")}catch(c){b=!1}}}return b?e:f}(),g=function(){var b=k.createElement(\"div\");b.innerHTML='<input type=\"file\" />';b=b.getElementsByTagName(\"input\")[0];return\"file\"!=b.type||b.disabled?f:e}(),h=\"ontouchstart\"in a?e:f,m;try{m=typeof navigator.geolocation!==d?e:typeof a.google!==d&&typeof google.gears!==d?e:typeof device!==d&&typeof device.getServiceObject!==d?e:typeof Mojo!==d&&\"Mojo.Service.Request\"!==typeof Mojo.Service.Request?e:f}catch(p){m=f}var l=function(b){try{var d=a.Audio?new Audio:k.createElement(\"audio\");if(d.canPlayType&&d.canPlayType(b)&&\"no\"!=d.canPlayType(b))return e}catch(c){}return f}(\"audio/mpeg\"),n=function(b){try{for(var a=k.createElement(\"div\"),c=0,g=[\"webkit\",\"Moz\",\"ms\",\"O\",\"\"],h=g.length;c<h;c++){var l=g[c],m=l?l+b:b.toLowerCase();if(typeof a.style[m]!==d)return e}return f}catch(n){return f}}(\"Transform\");return c+g+h+m+l+n+((a.XMLHttpRequest||a.XDomainRequest)&&(a.FormData||a.FileReader&&(a.XMLHttpRequest&&XMLHttpRequest.sendAsBinary||a.ArrayBuffer&&a.Uint8Array&&(a.MozBlobBuilder||a.WebKitBlobBuilder||a.BlobBuilder)))?e:f)}var c=a.screen,g=c.width||0,c=c.height||0,n=a.devicePixelRatio||1,p=(k.cookie.match(/(^|;\\s+)remixmdevice=([^;]+)/)||[])[2]||\"\",h=p.split(\"/\");p&&g==h[0]&&c==h[1]&&7==h[3].length||(g=[g,c,n,l()].join(\"/\"),k.cookie=\"remixmdevice=; expires=\"+(new Date(0)).toUTCString()+\"; path=/\",k.cookie=\"remixmdevice=\"+g+\"; expires=\"+(new Date((new Date).getTime()+7776E6)).toUTCString()+\"; path=/; domain=.vk.com\",location.replace(location.toString()))})(document,window,\"undefined\",\"!\",\"-\");(function(a,d){var c=a.hash||\"\",b=c.substr(2);\"#/\"==c.substr(0,2)&&!d&&(b.match(/^\\/*(away|login)(\\.php)?([^a-z0-9\\.]|$)/)&&(b=\"\"),a.replace(a.protocol+\"//\"+a.host+\"/\"+b))})(location);\n" "//-->\n" "</script>\n" "<link type=\"text/css\" rel=\"stylesheet\" href=\"/css/s_c.css?244\"></link>\n" "<link type=\"text/css\" rel=\"stylesheet\" media=\"only screen\" href=\"/css/s_yzg.css?168\"></link>\n" "<link rel=\"shortcut icon\" href=\"/images/faviconnew.ico?5\"></link>\n" "<link rel=\"canonical\" href=\"http://vk.com/durov\"></link><link rel=\"alternate\" href=\"android-app://com.vkontakte.android/vkontakte/m.vk.com/durov\" />\n" "</head>\n" "<body id=\"vk\" class=\"_hover vk_stickers_hints_support_no opera_mini_no vk_al_no\">\n" "<div id=\"vk_utils\"></div>\n" "<div id=\"vk_head\" class=\"mhead\">\n" "<div class=\"hb_wrap\"><div class=\"hb_btn\">&nbsp;</div></div>\n" "</div>\n" "<div id=\"vk_wrap\">\n" "<div id=\"l\"></div>\n" "<div id=\"m\"> <div id=\"mhead\" class=\"mhead\"> <a href=\"/\" accesskey=\"*\" class=\"hb_wrap mhb_home mhb_vkhome\">\n" "<div class=\"hb_btn mhi_home mhi_vkhome\">&nbsp;</div>\n" "</a>\n" "<a href=\"/login?to=ZHVyb3Y-\" class=\"hb_wrap mhb_notify\" accesskey=\"#\">\n" "<div class=\"hb_btn\">\n" "<em class=\"mh_btn_label\">войти</em>\n" "</div>\n" "</a>\n" "<div class=\"hb_wrap mhb_back al_back\"><h1 class=\"hb_btn mh_header\">Павел</h1></div></div>\n" "<div id=\"mcont\" class=\"mcont\"><div class=\"pcont fit_box\">\n" "<div class=\"owner_panel profile_panel\">\n" "<a href=\"/photo1_376599151?rev=1&from=profile\"><img src=\"http://cs629231.vk.me/v629231001/c542/fcMCbfjDsv0.jpg\" class=\"pp_img\" alt=\"Павел Дуров\" style=\"background-image:url(http://cs629231.vk.me/v629231001/c543/FfB--bOEVOY.jpg)\" /></a>\n" "<div class=\"pp_cont\">\n" "<h2 class=\"op_header\">Павел Дуров<b class=\"verified\"></b></h2>\n" "<div class=\"pp_last_activity\"></div>\n" "<div class=\"pp_status\">道德經</div>\n" "<div class=\"pp_info\">31 год, Санкт-Петербург</div>\n" "</div>\n" "<div class=\"op_block\"><a class=\"wide_link pp_auth_link\" href=\"/login?to=d3JpdGUx\">Чтобы отправить сообщение <span class=\"pp_auth_link_a\">Павлу</span>, Вам необходимо <b>войти</b>.</a></div>\n" "</div>\n" "<div class=\"ipanel bl_cont\">\n" "<div class=\"profile_info\"><h4 class=\"slim_header\">Информация</h4><div class=\"profile_info_cont\"><div><dl class=\"pinfo_row _pinfo\"><dt>День рождения:</dt><dd>10 октября 1984 г.</dd></dl><dl class=\"pinfo_row\"><dt>Место работы:</dt><dd>Telegram</dd></dl></div> <div class=\"pinfo_row\"><a class=\"wide_link al_pinfo\" href=\"/durov?act=info\">Полная информация »</a></div></div></div><a name=\"menu\"></a><div class=\"profile_info\"><h4 class=\"slim_header\">Другое</h4><div class=\"profile_info_cont profile_info_custom\"><ul class=\"profile_menu\">\n" "<li><a href=\"/albums1\" class=\"pm_item\">Фотографии <em class=\"pm_counter\">233</em></a></li><li><a href=\"/durov?act=fans\" class=\"pm_item\">Подписчики <em class=\"pm_counter\">6<span class=\"num_delim\"> </span>032<span class=\"num_delim\"> </span>503</em></a></li><li><a href=\"/videos1\" class=\"pm_item\">Видеозаписи <em class=\"pm_counter\">14</em></a></li><li><a href=\"/durov?menu_opened#menu\" class=\"pm_item\" onclick=\"this.parentNode.parentNode.nextSibling.style.display='block';this.parentNode.style.display='none';return false;\">Ещё..</a></li>\n" "</ul><ul class=\"profile_menu\" style=\"display:none\">\n" "<li><a href=\"/durov?act=idols\" class=\"pm_item\">Интересные страницы <em class=\"pm_counter\">43</em></a></li><li><a name=\"actions\"></a><div class=\"profile_info\"><h4 class=\"slim_header\">Действия</h4><div class=\"profile_info_cont profile_info_custom\"><ul class=\"context_menu\">\n" "<li ><a href=\"/durov?search=1\" class=\"cm_item bli\"><span class=\"cm_label\">Поиск по записям</span></a></li>\n" "</ul></div></div></li>\n" "</ul></div></div>\n" "<a name=\"wall\"></a>\n" "<h4 class=\"slim_header\">223 записи</h4>\n" "<a name=\"posts\"></a>\n" "<div class=\"wall_posts upanel bl_cont\">\n" "<div class=\"wall_item\" data-copy='11316927_4699'>\n" "<a class=\"post__anchor anchor\" name=\"post1_1237616\"></a>\n" "<div class=\"wi_head\">\n" "<a href=\"/durov\"><img src=\"http://cs629231.vk.me/v629231001/c543/FfB--bOEVOY.jpg\" class=\"wi_img\" /></a>\n" "<div class=\"wi_cont\">\n" "<div class=\"wi_author\"><a class=\"pi_author\" href=\"/durov\">Павел Дуров</a> </div>\n" "<div class=\"wi_info\"><a class=\"wi_date\" href=\"/wall1_1237616\">1 сен в 21:50</a></div>\n" "</div>\n" "</div>\n" "<div class=\"wi_body\">\n" "<div class=\"wi_explain\">\n" "</div>\n" "<div class=\"pic_body_wrap\">\n" "<div class=\"pic_body\">\n" "<div class=\"pic_header\">\n" "<a href=\"/ohuenko\"><img src=\"http://cs628218.vk.me/v628218927/f562/6vAdzYRk0MA.jpg\" class=\"pic_img\" /></a>\n" "<div class=\"pic_cont\">\n" "<div class=\"pic_from\"><span></span><i class=\"i_copy\"></i><a class=\"pi_author\" href=\"/ohuenko\">Андрей Яковенко</a> </div>\n" "<div class=\"pic_desc\"><a class=\"pic_desc_a\" href=\"/wall11316927_4699\">1 сен в 21:37</a></div>\n" "</div>\n" "</div>\n" "</div>\n" "<div class=\"pi_text\"> <span><a href=\"/feed?section=search&q=%23TelegramTheBestStickers\">#TelegramTheBestStickers</a> <br/>Подходят к завершению 15 новых стикерпаков&#33; По сложившейся традиции я предлагаю вам потестить их первыми. <br/><br/>На данный момент Telegram даёт возможность проявить себя и свои таланты более чем 50-ти художникам. Авторы получают не только локальную площадку для размещения своего творчества, но и щедрые индивидуальные премии каждые шесть месяцев. Всего с марта этого года на счета художников было переведено уже более &#036;450К — и это, конечно, только начало. </span><a href=\"/wall1_1237616\" class=\"pi_text_more\" onclick=\"this.nextSibling.style.display='inline';this.style.display='none';return false;\">Показать полностью…</a><span style=\"display:none\"><br/>Чтобы вступить в ряды нашего «творческого подразделения подпольной структуры <img class=\"emoji\" alt=\"😎\" src=\"/images/emoji/D83DDE0E.png\">», нужно прислать свои варианты стикеров личным сообщением @_Yakovenko (username вводить без нижнего подчеркивания ) в Telegram. <br/>Формат подачи работ следующий: рисуете 3 стикера в цвете с одним и тем же персонажем и 5 контурных эскизов c ним же на разные эмоции. Размер одного стикера должен быть не меньше 512х512 пикселей. Количество присылаемых вариантов персонажей не ограничено, потому лучше сделать не меньше трёх на выбор. <br/>Не забудьте прикрепить ссылку на ваше портфолио и, если ваши работы понравятся, ждите дальнейших инструкций. <img class=\"emoji\" alt=\"💪🏻\" src=\"/images/emoji/D83DDCAAD83CDFFB.png\"> <br/> <br/>Ссылки на наборы по порядку: <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FPhilTheOwl&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/PhilTheOwl</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FKamikazeCat&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/KamikazeCat</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FAmanita&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/Amanita</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FGreenGo&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/GreenGo</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FCrazyPony&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/CrazyPony</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FAliceFox&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/AliceFox</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FKoalaChuck&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/KoalaChuck</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FTheBestMovie2&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/TheBestMovie2</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FMsPaws&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/MsPaws</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FLazybonesJoe&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/LazybonesJoe</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FTheHipsterCat&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/TheHipsterCat</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FObeyReptilians&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/ObeyReptilians</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FDearWolf&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/DearWolf</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FBananaDude&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/BananaDude</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FMetcast&post=1_1237616\" target=\"_blank\">telegram.me/addstickers/Metcast</a></span></div>\n" "<div class=\"pi_medias thumbs_list thumbs_list1\"> <div class=\"medias_thumbs\"><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo11316927_428929212?list=wall1_1237616&from=profile\"><img src=\"http://cs636116.vk.me/v636116927/2467e/1UWGjveipqI.jpg\" class=\"ph_img\" data-id=\"11316927_428929212\" data-src_big=\"http://cs636116.vk.me/v636116927/2467f/j5tXSKbuJsw.jpg|604|422\" /></a></div></div>\n" "</div>\n" "<div class=\"wi_buttons\">\n" "<span class=\"like_wrap\"><a class=\"item_like _i\" href=\"/like?act=add&object=wall1_1237616&from=durov&hash=0e46d718df6142f554&wide=1\"><i class=\"i_like\"></i><b class=\"v_like\">2<span class=\"num_delim\"> </span>933</b></a><a class=\"item_share _i\" href=\"/like?act=publish&object=wall1_1237616&from=durov\"><i class=\"i_share\"></i><b class=\"v_share\">130</b></a></span><a class=\"item_replies _i\" href=\"/wall1_1237616?post_add#post_add\"><i class=\"i_replies\"></i><b class=\"v_replies\">17<span class=\"num_delim\"> </span>777</b></a>\n" "</div>\n" "</div>\n" "</div> <div class=\"wall_item\" data-copy='11316927_4674'>\n" "<a class=\"post__anchor anchor\" name=\"post1_1237612\"></a>\n" "<div class=\"wi_head\">\n" "<a href=\"/durov\"><img src=\"http://cs629231.vk.me/v629231001/c543/FfB--bOEVOY.jpg\" class=\"wi_img\" /></a>\n" "<div class=\"wi_cont\">\n" "<div class=\"wi_author\"><a class=\"pi_author\" href=\"/durov\">Павел Дуров</a> </div>\n" "<div class=\"wi_info\"><a class=\"wi_date\" href=\"/wall1_1237612\">1 сен в 21:50</a></div>\n" "</div>\n" "</div>\n" "<div class=\"wi_body\">\n" "<div class=\"wi_explain\">\n" "</div>\n" "<div class=\"pic_body_wrap\">\n" "<div class=\"pic_body\">\n" "<div class=\"pic_header\">\n" "<a href=\"/ohuenko\"><img src=\"http://cs628218.vk.me/v628218927/f562/6vAdzYRk0MA.jpg\" class=\"pic_img\" /></a>\n" "<div class=\"pic_cont\">\n" "<div class=\"pic_from\"><span></span><i class=\"i_copy\"></i><a class=\"pi_author\" href=\"/ohuenko\">Андрей Яковенко</a> </div>\n" "<div class=\"pic_desc\"><a class=\"pic_desc_a\" href=\"/wall11316927_4674\">17 авг в 16:49</a></div>\n" "</div>\n" "</div>\n" "</div>\n" "<div class=\"pi_text\"> <span><a href=\"/feed?section=search&q=%23TelegramTheBestStickers\">#TelegramTheBestStickers</a><br/>Gotcha&#33;<br/>Прямо из-под планшетов подоспела новая партия горячих наборов&#33; Пока сохнет краска в пикселях, предлагаю вам в числе первых заценить их уже сейчас.<br/>И, конечно, тренд уходящего лета — ловите стикеры по игре Pokemon GO<img class=\"emoji\" alt=\"🎮\" src=\"/images/emoji/D83CDFAE.png\"></span><a href=\"/wall1_1237612\" class=\"pi_text_more\" onclick=\"this.nextSibling.style.display='inline';this.style.display='none';return false;\">Показать полностью…</a><span style=\"display:none\"><br/><br/>Ссылки на наборы по порядку: <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FJeanJacques&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/JeanJacques</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FCorgeous&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/Corgeous</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FMantisEva&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/MantisEva</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FCannamela&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/Cannamela</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FKookyCat&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/KookyCat</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FMishkaTheBear&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/MishkaTheBear</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FMrRibbit&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/MrRibbit</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FPokemonMasters&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/PokemonMasters</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FHeyProboscis&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/HeyProboscis</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FCrazySnail&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/CrazySnail</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FUnicornStella&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/UnicornStella</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FRed_Riding_Hood_and_Wolf&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/Red_Riding_Hood_and_Wolf</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FRuntsAnimals&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/RuntsAnimals</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FGoRobot&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/GoRobot</a> <br/><a href=\"/away.php?to=http%3A%2F%2Ftelegram.me%2Faddstickers%2FLamaCritic&post=1_1237612\" target=\"_blank\">telegram.me/addstickers/LamaCritic</a></span></div>\n" "<div class=\"pi_medias thumbs_list thumbs_list1\"> <div class=\"medias_thumbs\"><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo11316927_426775404?list=wall1_1237612&from=profile\"><img src=\"http://cs633429.vk.me/v633429927/43dfd/KTaAf6q0J8c.jpg\" class=\"ph_img\" data-id=\"11316927_426775404\" data-src_big=\"http://cs633429.vk.me/v633429927/43dfe/44ohqJhEsDg.jpg|604|422\" /></a></div></div>\n" "</div>\n" "<div class=\"wi_buttons\">\n" "<span class=\"like_wrap\"><a class=\"item_like _i\" href=\"/like?act=add&object=wall1_1237612&from=durov&hash=7abb2d53bb10e452d2&wide=1\"><i class=\"i_like\"></i><b class=\"v_like\">1<span class=\"num_delim\"> </span>594</b></a><a class=\"item_share _i\" href=\"/like?act=publish&object=wall1_1237612&from=durov\"><i class=\"i_share\"></i><b class=\"v_share\">50</b></a></span><a class=\"item_replies _i\" href=\"/wall1_1237612?post_add#post_add\"><i class=\"i_replies\"></i><b class=\"v_replies\">1<span class=\"num_delim\"> </span>921</b></a>\n" "</div>\n" "</div>\n" "</div> <div class=\"wall_item\">\n" "<a class=\"post__anchor anchor\" name=\"post1_1184057\"></a>\n" "<div class=\"wi_head\">\n" "<a href=\"/durov\"><img src=\"http://cs629231.vk.me/v629231001/c543/FfB--bOEVOY.jpg\" class=\"wi_img\" /></a>\n" "<div class=\"wi_cont\">\n" "<div class=\"wi_author\"><a class=\"pi_author\" href=\"/durov\">Павел Дуров</a> </div>\n" "<div class=\"wi_info\"><a class=\"wi_date\" href=\"/wall1_1184057\">17 авг в 17:46</a></div>\n" "</div>\n" "</div>\n" "<div class=\"wi_body\">\n" "<div class=\"wi_explain\">\n" "</div>\n" "<div class=\"pi_text\"> <span>7 претензий к новому дизайну веб-версии ВКонтакте:<br/><br/>1. Главный раздел сайта – Новости – стали уже. Парадоксально, что необходимость редизайна обосновывалась стремлением более эффективно использовать экран. По факту, если сравнить ширину записей в старой и новой версии, новости лишь сузились на 28px.</span><a href=\"/wall1_1184057\" class=\"pi_text_more\" onclick=\"this.nextSibling.style.display='inline';this.style.display='none';return false;\">Показать полностью…</a><span style=\"display:none\"><br/><br/>2. Новости – как и все остальные разделы – стали ниже на 42px. Из-за фиксированной шапки вертикальное пространство сайта стало меньше, нужно больше проматывать. Это серьезное изменение к худшему: именно вертикальный скролл представляет собой дефицит на большинстве дисплеев.<br/><br/>3. При просмотре главного раздела сайта – Новостей – утрачивается фокус на контенте. В новой версии возник визуальный мусор в виде редко используемой фиксированной правой колонки. С учетом фиксированной шапки и узкой ширины, просмотр новостей стал вдвойне захламлен.<br/><br/>4. При просмотре фотографий утрачен фокус на самой картинке. Фотографии смещены влево, а яркое пятно белой колонки комментариев, появившейся справа, перетягивает на себя фокус внимания. Это решение было скопировано c Facebook, который в свое время ввел правую колонку для размещения дополнительных рекламных блоков. <br/><br/>5. Статичная левая колонка при промотке старых записей личных страниц не только не дает нужной информации, но и сужает горизонтальное пространство для просмотра записей по сравнению со старой версией. Аналогичная ситуация – при просмотре записей в группах и пабликах. <br/><br/>6. Замена белого цвета фона на серый не только уменьшила ощущение чистоты и минимализма, но и в целом сделала сайт более грустным и пасмурным. Появившиеся сизые иконки на сером меню слева на всех страницах избыточны и представляют собой визуальный мусор.<br/><br/>7. Старый логотип “ВКонтакте” в силу композиции лучше вписывался в горизонтальную шапку, чем новый логотип “VK”. Я нарисовал оба логотипа достаточно давно (первый около 10 лет назад, второй – около 5), но в русскоязычной версии не заменял старый логотип международным именно в силу этого – достаточно очевидного – обстоятельства.<br/><br/>Итог: старый дизайн ВКонтакте, не менявшийся несколько лет, безусловно, нуждался в ряде доработок и эстетическом переосмыслении в рамках новых стилей. Однако проведенный редизайн не только не соответствует стандартам 15-16 года (таким, как Material), но и снижает юзабельность ресурса. <br/><br/>Все перечисленные элементы нового дизайна были вслепую скопированы с Фейсбука образца 2012. Фейсбук в эти годы был вынужден наращивать прибыльность в рамках IPO, поэтому в проектировании дизайна жертвовал интересами пользователей ради добавления новых рекламных блоков. Отсюда появилась и правая колонка в Новостях и Фотографиях, и снижение фокуса на контенте ради рекламы. <br/><br/>Сегодня, когда монетизация ВКонтакте переносится в “умную” ленту и мобильные клиенты, подобные шаги не обоснованы. В 2016м году Facebook должен был копировать наработки ВКонтакте, а не наоборот.</span></div>\n" "<div class=\"pi_medias thumbs_list thumbs_list7\"> <div class=\"medias_thumbs\"><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo1_430420801?list=wall1_1184057&from=profile\"><img src=\"http://cs543106.vk.me/v543106001/1c432/NxZ5u6RIC-Y.jpg\" class=\"ph_img\" data-id=\"1_430420801\" data-src_big=\"http://cs543106.vk.me/v543106001/1c433/9lvaMS0Pzcg.jpg|604|537\" /></a><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo1_430424714?list=wall1_1184057&from=profile\"><img src=\"http://cs543106.vk.me/v543106001/1c488/j82X1rUAC9o.jpg\" class=\"ph_img\" data-id=\"1_430424714\" data-src_big=\"http://cs543106.vk.me/v543106001/1c489/GioUGyaSgqA.jpg|604|375\" /></a><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo1_430420878?list=wall1_1184057&from=profile\"><img src=\"http://cs543106.vk.me/v543106001/1c444/Ho8FUoc7cCc.jpg\" class=\"ph_img\" data-id=\"1_430420878\" data-src_big=\"http://cs543106.vk.me/v543106001/1c445/6L3kxoFW8qI.jpg|604|234\" /></a><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo1_430425125?list=wall1_1184057&from=profile\"><img src=\"http://cs543106.vk.me/v543106001/1c491/2x-nxFeFElU.jpg\" class=\"ph_img\" data-id=\"1_430425125\" data-src_big=\"http://cs543106.vk.me/v543106001/1c492/Rf1ZluR1Svg.jpg|604|256\" /></a><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo1_430420944?list=wall1_1184057&from=profile\"><img src=\"http://cs543106.vk.me/v543106001/1c458/VsPg4JlMSlc.jpg\" class=\"ph_img\" data-id=\"1_430420944\" data-src_big=\"http://cs543106.vk.me/v543106001/1c459/_ms_LSeL92I.jpg|604|257\" /></a><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo1_430421053?list=wall1_1184057&from=profile\"><img src=\"http://cs543106.vk.me/v543106001/1c46c/tzPcsvCfFSc.jpg\" class=\"ph_img\" data-id=\"1_430421053\" data-src_big=\"http://cs543106.vk.me/v543106001/1c46d/tdYk8GzHQ8I.jpg|604|188\" /></a><a class=\"medias_thumb thumb_item al_photo\" href=\"/photo1_430421078?list=wall1_1184057&from=profile\"><img src=\"http://cs543106.vk.me/v543106001/1c476/MsWJDN6mYUU.jpg\" class=\"ph_img\" data-id=\"1_430421078\" data-src_big=\"http://cs543106.vk.me/v543106001/1c477/BMkUFjcitd8.jpg|604|205\" /></a></div></div>\n" "<div class=\"wi_buttons\">\n" "<span class=\"like_wrap\"><a class=\"item_like _i\" href=\"/like?act=add&object=wall1_1184057&from=durov&hash=0e6739baf8c9ea42b3&wide=1\"><i class=\"i_like\"></i><b class=\"v_like\">108<span class=\"num_delim\"> </span>250</b></a><a class=\"item_share _i\" href=\"/like?act=publish&object=wall1_1184057&from=durov\"><i class=\"i_share\"></i><b class=\"v_share\">12<span class=\"num_delim\"> </span>449</b></a></span><a class=\"item_replies _i\" href=\"/wall1_1184057?post_add#post_add\"><i class=\"i_replies\"></i><b class=\"v_replies\">44<span class=\"num_delim\"> </span>092</b></a>\n" "</div>\n" "</div>\n" "</div> <div class=\"wall_item\">\n" "<a class=\"post__anchor anchor\" name=\"post1_1133071\"></a>\n" "<div class=\"wi_head\">\n" "<a href=\"/durov\"><img src=\"http://cs629231.vk.me/v629231001/c543/FfB--bOEVOY.jpg\" class=\"wi_img\" /></a>\n" "<div class=\"wi_cont\">\n" "<div class=\"wi_author\"><a class=\"pi_author\" href=\"/durov\">Павел Дуров</a> </div>\n" "<div class=\"wi_info\"><a class=\"wi_date\" href=\"/wall1_1133071\">21 июл в 17:11</a></div>\n" "</div>\n" "</div>\n" "<div class=\"wi_body\">\n" "<div class=\"wi_explain\">\n" "</div>\n" "<div class=\"pi_text\">И к более насущному вопросу: что придет на замену KickassTorrents? <br/><br/><a href=\"/away.php?to=https%3A%2F%2Flenta.ru%2Fnews%2F2016%2F07%2F21%2Fthe_best_torrent%2F&post=1_1133071\" target=\"_blank\">https://lenta.ru/news/2016/07/21/the_best_torrent/</a></div>\n" "<div class=\"pi_medias\"><div class=\"medias_link_thumbed\">\n" "<a class=\"mlt_header\" href=\"/away.php?to=https%3A%2F%2Flenta.ru%2Fnews%2F2016%2F07%2F21%2Fthe_best_torrent%2F&post=1_1133071\" target=\"_blank\"> <div class=\"mlt_title\">В Польше задержали создателя самого популярного торрент-трекера в мире</div> <div class=\"mlt_link\">lenta.ru</div></a>\n" "<div class=\"mlt_thumb\" style=\"background-image:url(http://cs630516.vk.me/v630516641/3db35/HIxk9vOzkTY.jpg)\"></div>\n" "<div class=\"mlt_cont\">\n" "<div class=\"mlt_body\">\n" "<div class=\"mlt_desc\">В Польше по запросу американских властей задержан гражданин Украины Артем Ваулин, которого называют создателем самого популярного в мире торрент-трекера Kickass Torrents. Его обвиняют..</div>\n" "</div>\n" "</div>\n" "</div></div>\n" "<div class=\"wi_buttons\">\n" "<span class=\"like_wrap\"><a class=\"item_like _i\" href=\"/like?act=add&object=wall1_1133071&from=durov&hash=7d4a2dac46794552c4&wide=1\"><i class=\"i_like\"></i><b class=\"v_like\">7<span class=\"num_delim\"> </span>318</b></a><a class=\"item_share _i\" href=\"/like?act=publish&object=wall1_1133071&from=durov\"><i class=\"i_share\"></i><b class=\"v_share\">376</b></a></span><a class=\"item_replies _i\" href=\"/wall1_1133071?post_add#post_add\"><i class=\"i_replies\"></i><b class=\"v_replies\">37<span class=\"num_delim\"> </span>469</b></a>\n" "</div>\n" "</div>\n" "</div> <div class=\"wall_item\" data-copy='-55882680_85'>\n" "<a class=\"post__anchor anchor\" name=\"post1_1108590\"></a>\n" "<div class=\"wi_head\">\n" "<a href=\"/durov\"><img src=\"http://cs629231.vk.me/v629231001/c543/FfB--bOEVOY.jpg\" class=\"wi_img\" /></a>\n" "<div class=\"wi_cont\">\n" "<div class=\"wi_author\"><a class=\"pi_author\" href=\"/durov\">Павел Дуров</a> </div>\n" "<div class=\"wi_info\"><a class=\"wi_date\" href=\"/wall1_1108590\">5 июл в 19:54</a></div>\n" "</div>\n" "</div>\n" "<div class=\"wi_body\">\n" "<div class=\"wi_explain\">\n" "</div>\n" "<div class=\"pic_body_wrap\">\n" "<div class=\"pic_body\">\n" "<div class=\"pic_header\">\n" "<a href=\"/durovschallenge\"><img src=\"http://cs604327.vk.me/v604327001/5d27/luBz-WO1E-4.jpg\" class=\"pic_img\" /></a>\n" "<div class=\"pic_cont\">\n" "<div class=\"pic_from\"><span></span><i class=\"i_copy\"></i><a class=\"pi_author\" href=\"/durovschallenge\">Telegram Challenge</a> </div>\n" "<div class=\"pic_desc\"><a class=\"pic_desc_a\" href=\"/wall-55882680_85\">5 июл в 2:06</a></div>\n" "</div>\n" "</div>\n" "</div>\n" "<div class=\"pi_text\">После тщательного тестирования подведены итоги Telegram Android Challenge 2016. Всего было прислано 52 конкурсных приложения. <br/><br/>1 место: Адель Низамутдинов и Евгений Авсиевич. Каждый из занявших первое место получает 300,000 рублей.<br/>2 место: Григорий Клюшников и Станислав Федоров. Каждый из занявших второе место получает 200,000 рублей.<br/>3 место: Mykhailo (TgCameraChallenge) и Alex (Cameraphone). Каждый из занявших третье место получает 100,000 рублей.<br/><br/>Детали тестирования каждого из присланных приложений – <a href=\"/away.php?to=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1atMrHfjcqLIu2PBD07PrsIGPjE3Idu9Wkf_1CyoGeAU%2Fedit&post=1_1108590\" target=\"_blank\" title=\"https://docs.google.com/document/d/1atMrHfjcqLIu2PBD07PrsIGPjE3Idu9Wkf_1CyoGeAU/edit\">https://docs.google.com/document/d/1atMrHfjcqLIu2PBD0..</a>. К сожалению, ни одно приложение не продемонстрировало безупречно стабильную работу. По желанию участников мы можем выcлать подробные логи ошибок их приложений при каждом падении.<br/><br/>Поздравляем победителей&#33; Денежные призы и сертификаты будут разосланы каждому из 6 победителей в течение июля.</div>\n" "<div class=\"pi_medias\"><div class=\"medias_link_thumbed\">\n" "<a class=\"mlt_header\" href=\"/away.php?to=https%3A%2F%2Fdocs.google.com%2Fdocument%2Fd%2F1atMrHfjcqLIu2PBD07PrsIGPjE3Idu9Wkf_1CyoGeAU%2Fedit&post=1_1108590\" target=\"_blank\"> <div class=\"mlt_title\">Camera contest</div> <div class=\"mlt_link\">docs.google.com</div></a>\n" "<div class=\"mlt_thumb\" style=\"background-image:url(http://cs604420.vk.me/v604420001/17b62/HPCbNlBqkBA.jpg)\"></div>\n" "<div class=\"mlt_cont\">\n" "<div class=\"mlt_body\">\n" "<div class=\"mlt_desc\">Девайсы, на которых проводилось тестирование: Samsung Galaxy S3 (Android 4.3), Moto X (4.4), Moto G (6.0), Xiami Redmi Note 2 (5.0.2), Lenovo K900 (4.2.1). 1 - Adel Nizamutdinov -..</div>\n" "</div>\n" "</div>\n" "</div></div>\n" "<div class=\"pi_signed\">\n" "<span></span><i class=\"i_signed\"></i><a class=\"user\" href=\"/durov\">Павел Дуров</a>\n" "</div>\n" "</div>\n" "<div class=\"wi_buttons\">\n" "<span class=\"like_wrap\"><a class=\"item_like _i\" href=\"/like?act=add&object=wall1_1108590&from=durov&hash=e3681136d1935d9c21&wide=1\"><i class=\"i_like\"></i><b class=\"v_like\">4<span class=\"num_delim\"> </span>235</b></a><a class=\"item_share _i\" href=\"/like?act=publish&object=wall1_1108590&from=durov\"><i class=\"i_share\"></i><b class=\"v_share\">84</b></a></span><a class=\"item_replies _i\" href=\"/wall1_1108590?post_add#post_add\"><i class=\"i_replies\"></i><b class=\"v_replies\">15<span class=\"num_delim\"> </span>180</b></a>\n" "</div>\n" "</div>\n" "</div>\n" "<div class=\"show_more_wrap\"><a class=\"show_more\" href=\"/durov?offset=5&own=1#posts\">Показать ещё</a></div>\n" "</div>\n" "</div>\n" "</div></div>\n" "<div id=\"mfoot\" class=\"mfoot\"><div class=\"pfoot\">\n" "<ul id=\"footer_menu\" class=\"footer_menu\">\n" "<li class=\"fm_row\"><a class=\"fm_item\" href=\"/\">На главную</a></li>\n" "<li class=\"fm_row\"><a id=\"fv_link\" class=\"fm_item fv_link\" href=\"http://vk.com/durov?_fm=profile\">Полная версия</a></li>\n" "</ul>\n" "</div></div>\n" "<div class=\"_cntrs\" style=\"height:0;\">\n" "<img width=\"1\" height=\"1\" src=\"//counter.yadro.ru/hit?uhttp%3A%2F%2Fm.vk.com%2Fdurov;r;51547724\" alt=\"\" align=\"left\" />\n" "<img width=\"1\" height=\"1\" src=\"//b.scorecardresearch.com/p?c1=2&c2=13765216&c3=&c4=http%3A%2F%2Fm.vk.com%2Fdurov&c5=&c9=&c15=&cv=2.0&cj=1&rn=51547724\" alt=\"\" align=\"left\" />\n" "<img src=\"//top-fwz1.mail.ru/counter?id=2579437;pid=0;r=\" style=\"border:0;\" height=\"1\" width=\"1\" />\n" "</div></div>\n" "<div id=\"z\"></div>\n" "</div>\n" "<div id=\"vk_bottom\"></div>\n" "<script type=\"text/javascript\">\n" "<!--\n" "parent&&parent!=window&&(document.getElementsByTagName('body')[0].innerHTML='');\n" "//-->\n" "</script>\n" "</body>\n" "</html>") matches = re.search(regex, test_str) if matches: print ("Match was found at {start}-{end}: {match}".format(start = matches.start(), end = matches.end(), match = matches.group())) for groupNum in range(0, len(matches.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = matches.start(groupNum), end = matches.end(groupNum), group = matches.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