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"([-|+]?\d+[.|,]?\d+)" test_str = ("<!DOCTYPE html><html lang=\"ru\"><head><meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\" />\n" "<script type=\"text/javascript\">window.NREUM||(NREUM={});NREUM.info={\"beacon\":\"bam.nr-data.net\",\"errorBeacon\":\"bam.nr-data.net\",\"licenseKey\":\"281f4fac73\",\"applicationID\":\"10607429\",\"transactionName\":\"cQpeTBYJXQhdEU1HB1oMU1QBFR4NVgcHSQ==\",\"queueTime\":0,\"applicationTime\":301,\"agent\":\"js-agent.newrelic.com/nr-768.min.js\"}</script>\n" "<script type=\"text/javascript\">window.NREUM||(NREUM={}),__nr_require=function(e,n,t){function r(t){if(!n[t]){var o=n[t]={exports:{}};e[t][0].call(o.exports,function(n){var o=e[t][1][n];return r(o||n)},o,o.exports)}return n[t].exports}if(\"function\"==typeof __nr_require)return __nr_require;for(var o=0;o<t.length;o++)r(t[o]);return r}({QJf3ax:[function(e,n){function t(e){function n(n,t,a){e&&e(n,t,a),a||(a={});for(var u=c(n),f=u.length,s=i(a,o,r),p=0;f>p;p++)u[p].apply(s,t);return s}function a(e,n){f[e]=c(e).concat(n)}function c(e){return f[e]||[]}function u(){return t(n)}var f={};return{on:a,emit:n,create:u,listeners:c,_events:f}}function r(){return{}}var o=\"nr@context\",i=e(\"gos\");n.exports=t()},{gos:\"7eSDFh\"}],ee:[function(e,n){n.exports=e(\"QJf3ax\")},{}],3:[function(e,n){function t(e){return function(){r(e,[(new Date).getTime()].concat(i(arguments)))}}var r=e(\"handle\"),o=e(1),i=e(2);\"undefined\"==typeof window.newrelic&&(newrelic=window.NREUM);var a=[\"setPageViewName\",\"addPageAction\",\"setCustomAttribute\",\"finished\",\"addToTrace\",\"inlineHit\",\"noticeError\"];o(a,function(e,n){window.NREUM[n]=t(\"api-\"+n)}),n.exports=window.NREUM},{1:12,2:13,handle:\"D5DuLP\"}],gos:[function(e,n){n.exports=e(\"7eSDFh\")},{}],\"7eSDFh\":[function(e,n){function t(e,n,t){if(r.call(e,n))return e[n];var o=t();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,n,{value:o,writable:!0,enumerable:!1}),o}catch(i){}return e[n]=o,o}var r=Object.prototype.hasOwnProperty;n.exports=t},{}],D5DuLP:[function(e,n){function t(e,n,t){return r.listeners(e).length?r.emit(e,n,t):void(r.q&&(r.q[e]||(r.q[e]=[]),r.q[e].push(n)))}var r=e(\"ee\").create();n.exports=t,t.ee=r,r.q={}},{ee:\"QJf3ax\"}],handle:[function(e,n){n.exports=e(\"D5DuLP\")},{}],XL7HBI:[function(e,n){function t(e){var n=typeof e;return!e||\"object\"!==n&&\"function\"!==n?-1:e===window?0:i(e,o,function(){return r++})}var r=1,o=\"nr@id\",i=e(\"gos\");n.exports=t},{gos:\"7eSDFh\"}],id:[function(e,n){n.exports=e(\"XL7HBI\")},{}],G9z0Bl:[function(e,n){function t(){var e=d.info=NREUM.info,n=f.getElementsByTagName(\"script\")[0];if(e&&e.licenseKey&&e.applicationID&&n){c(p,function(n,t){n in e||(e[n]=t)});var t=\"https\"===s.split(\":\")[0]||e.sslForHttp;d.proto=t?\"https://\":\"http://\",a(\"mark\",[\"onload\",i()]);var r=f.createElement(\"script\");r.src=d.proto+e.agent,n.parentNode.insertBefore(r,n)}}function r(){\"complete\"===f.readyState&&o()}function o(){a(\"mark\",[\"domContent\",i()])}function i(){return(new Date).getTime()}var a=e(\"handle\"),c=e(1),u=window,f=u.document;e(2);var s=(\"\"+location).split(\"?\")[0],p={beacon:\"bam.nr-data.net\",errorBeacon:\"bam.nr-data.net\",agent:\"js-agent.newrelic.com/nr-768.min.js\"},d=n.exports={offset:i(),origin:s,features:{}};f.addEventListener?(f.addEventListener(\"DOMContentLoaded\",o,!1),u.addEventListener(\"load\",t,!1)):(f.attachEvent(\"onreadystatechange\",r),u.attachEvent(\"onload\",t)),a(\"mark\",[\"firstbyte\",i()])},{1:12,2:3,handle:\"D5DuLP\"}],loader:[function(e,n){n.exports=e(\"G9z0Bl\")},{}],12:[function(e,n){function t(e,n){var t=[],o=\"\",i=0;for(o in e)r.call(e,o)&&(t[i]=n(o,e[o]),i+=1);return t}var r=Object.prototype.hasOwnProperty;n.exports=t},{}],13:[function(e,n){function t(e,n,t){n||(n=0),\"undefined\"==typeof t&&(t=e?e.length:0);for(var r=-1,o=t-n||0,i=Array(0>o?0:o);++r<o;)i[r]=e[n+r];return i}n.exports=t},{}]},{},[\"G9z0Bl\"]);</script><meta charset=\"UTF-8\" /><meta content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\" name=\"viewport\" /><title>Личный кабинет пользователя</title><link rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/assets/favicon-62bdb5ba42228d86b059816362b7715200d1c982c30074eecc6b3f8961e39148.ico\" /><link rel=\"stylesheet\" media=\"all\" href=\"//cdn.platon.ru/arm-lk/main.min.css\" />\n" "<link rel=\"stylesheet\" media=\"all\" href=\"/assets/application-aa8f30cd187c650588ac047d727001a7bcbbc6959adb115fdb9c75ce7fad63c2.css\" /><meta name=\"csrf-param\" content=\"authenticity_token\" />\n" "<meta name=\"csrf-token\" content=\"KZNXKW95rnB3VSvtZaByspP/13kX5MR0Gwep3UgDyFT+jf1ue6Q06fugRzTQAdNLpNwGfEewJKxQmwEI6LZf3w==\" /></head><body><div class=\"modal fade\" id=\"errorModal\"><div class=\"modal-dialog\"><div class=\"modal-content\"><a class=\"modal__close\" data-dismiss=\"modal\" href=\"#\"></a><div class=\"modal-header\"><h2>Ошибка</h2></div><div class=\"modal-body\"><p class=\"b-text\" data-default-text=\"Произошла неизвестная ошибка\" id=\"errorModalText\"></p></div><table class=\"modal-footer\"><tbody><tr><td></td><td><a class=\"b-link\" data-dismiss=\"modal\" href=\"#\"><i class=\"svp svp-close b-link__icon\"></i> Ок</a></td></tr></tbody></table></div></div></div><div id=\"map_aim\" style=\"display: none;\"></div><header class=\"header\"><div class=\"header__aside\"><div class=\"burger\"><i class=\"burger__icon svp svp-burger\"></i></div><div class=\"logo\"><a href=\"/\"><img class=\"logo__img\" src=\"/assets/platon_logo-c25d02f753aa38f481af50ecfe6328668de6bac6f660980f706a555e73469e28.svg\" alt=\"Platon logo c25d02f753aa38f481af50ecfe6328668de6bac6f660980f706a555e73469e28\" /></a></div></div><div class=\"tabs tabs_header\"><a href=\"/profile\"><div class=\"tab tab_type_user\"><p class=\"tab__title\">Владелец: Электростроймонтаж-96<span class=\"tab__value tab__value_size_small\">Дмитрий Борисович С.</span></p><a class=\"tab__button\" href=\"/sign_out\"><i class=\"tab__icon svp svp-exit\"></i></a></div><a href=\"#\"><div class=\"tab tab_type_balance\"><p class=\"tab__title\">Баланс всех счетов:<span class=\"tab__value balance_counter\"><balance>...</balance><i class=\"currency\"> ₷</i></span></p></div></a></a><div class=\"tab_type_notifications__wrap no_unread\" tabindex=\"-1\"><a class=\"tab tab_type_notifications\" data-remote=\"true\" href=\"/notifications/unread\"><p class=\"tab__title\">Уведомления:<span class=\"tab__value notifications_counter\">...</span></p><p class=\"tab__button\"><i class=\"tab__icon svp svp-att\"></i></p></a><div class=\"notification notification-container\"></div></div><ul class=\"tab tab_type_lng lng\"><li class=\"lng__item lng__item_active\"><a class=\"lng__link\" href=\"/accounts/906630/vehicles?locale=ru\"><span class=\"svp svp-rus lng__flag\"><span class=\"path1\"></span><span class=\"path2\"></span><span class=\"path3\"></span><span class=\"path4\"></span></span><span class=\"lng__arrow\"></span><span class=\"lng__text\">Русский</span></a></li><li class=\"lng__item b-hide\"><a class=\"lng__link\" href=\"/accounts/906630/vehicles?locale=en\"><span class=\"svp svp-english lng__flag\"><span class=\"path1\"></span><span class=\"path2\"></span><span class=\"path3\"></span><span class=\"path4\"></span><span class=\"path5\"></span><span class=\"path6\"></span><span class=\"path7\"></span><span class=\"path8\"></span><span class=\"path9\"></span><span class=\"path10\"></span><span class=\"path11\"></span><span class=\"path12\"></span><span class=\"path13\"></span><span class=\"path14\"></span></span><span class=\"lng__arrow\"></span><span class=\"lng__text\">English</span></a></li></ul></div></header><div class=\"main\"><ul class=\"nav\"><li class=\"nav__item\"><a class=\"nav__link\" href=\"/route_cards\"><i class=\"nav__icon svp svp-location\"></i><span class=\"nav__title\">Маршрутные карты</span></a></li><li class=\"nav__item\"><a class=\"nav__link\" href=\"/accounts\"><i class=\"nav__icon svp svp-money\"></i><span class=\"nav__title\">Платежи</span></a></li><li class=\"nav__item\"><a class=\"nav__link nav__link_active\" href=\"/accounts/906630/vehicles\"><i class=\"nav__icon svp svp-ts\"></i><span class=\"nav__title\">Транспортные средства</span></a></li><li class=\"nav__item\"><a class=\"nav__link\" href=\"/profile\"><i class=\"nav__icon svp svp-docs\"></i><span class=\"nav__title\">Профиль</span></a></li><li class=\"nav__item\"><a class=\"nav__link\" href=\"/appeals\"><i class=\"nav__icon svp svp-chat\"></i><span class=\"nav__title\">Обращения</span></a></li><li class=\"nav__item\"><a class=\"nav__link\" href=\"/sign_out\"><i class=\"nav__icon svp svp-exit\"></i><span class=\"nav__title\">Выйти</span></a></li></ul><div class=\"content__wrap\"><div class=\"content\"><div class=\"headline\"><h1 class=\"headline__title\">Транспортные средства</h1></div><div class=\"tab-panel\"><div class=\"tab-panel__tabs\"><a class=\"tab-panel__tab active\" href=\"#listTs\">Список</a><a class=\"tab-panel__tab\" href=\"#listTsGroup\">Группы</a><a class=\"tab-panel__tab\" href=\"#orderDevice\">Заказы устройств</a></div><div class=\"tab-panel__container\"><div class=\"tab-panel__content active\" id=\"listTs\"><div class=\"b-form-block\"><div class=\"row\"><div class=\"col-3\"><div class=\"b-form-group no-edit\"><label class=\"b-form-group__label\" for=\"select-client-account\">Лицевой счет</label><select name=\"accounts\" id=\"select-client-account\" class=\"b-form-group__select\" data-role=\"vehicle-account\" onchange=\"changeAccount(this.value)\"><option selected=\"selected\" value=\"906630\">101 009 066 305 </option></select><button class=\"b-form-group__icon\" type=\"button\"><i class=\"svp svp-arrow_left_q\"></i></button></div></div><div class=\"col-3\"><div class=\"b-form-group no-edit\"><label class=\"b-form-group__label\" for=\"select-vehicle-group\">Группа ТС</label><select name=\"vehicle_groups\" id=\"select-vehicle-group\" class=\"b-form-group__select\" data-role=\"vehicle-group\" onchange=\"vehicleSearch()\"><option value=\"all\">Все транспортные средства</option>\n" "<option value=\"without_group\">Транспортные средства без группы</option></select><button class=\"b-form-group__icon\" type=\"button\"><i class=\"svp svp-arrow_left_q\"></i></button></div></div><div class=\"col-3\"><div class=\"b-form-group\"><label class=\"b-form-group__label b-form-group__label_with-icon\" for=\"search-vehicle\">Найти ТС по ГРЗ</label><input type=\"text\" name=\"grnz\" id=\"search-vehicle\" class=\"b-form-group__input b-form-group__input_with-icon\" data-role=\"vehicle-grnz\" onkeyup=\"vehicleSearch()\" /><button class=\"b-form-group__icon\" type=\"button\"><i class=\"svp svp-search\"></i></button></div></div><div class=\"col-3\"><a class=\"btn\" href=\"/accounts/906630/vehicles/new\">Зарегистрировать ТС</a></div></div></div><div class=\"toolbar\"><div class=\"toolbar__item\" data-visible-id=\"1\"><p class=\"b-link b-text_size_small\"><i class=\"b-link__icon green svp svp-down_q\"></i><span class=\"b-link__light\">Верифицировано</span></p></div><div class=\"toolbar__item\" data-visible-id=\"1\"><p class=\"b-link b-text_size_small\"><i class=\"b-link__icon red svp svp-close_q\"></i><span class=\"b-link__light\">Не верифицировано</span></p></div><div class=\"toolbar__item\" data-visible-id=\"1\"><p class=\"b-link b-text_size_small\"><i class=\"b-link__icon green svp svp-by\"></i><span class=\"b-link__light\">БУ активно</span></p></div><div class=\"toolbar__item\" data-visible-id=\"1\"><p class=\"b-link b-text_size_small\"><i class=\"b-link__icon red svp svp-broken_by\"></i><span class=\"b-link__light\">БУ не активно</span></p></div><div class=\"toolbar__item\" data-visible-id=\"1\"><p class=\"b-link b-text_size_small\"><i class=\"b-link__icon gray svp svp-by\"></i><span class=\"b-link__light\">БУ отсутствует</span></p></div></div><div id=\"vehicles\"><table class=\"b-table\"><thead><tr><th>ГРЗ</th><th>Номер и статус БУ</th><th>Группа</th></tr></thead><tbody><tr class=\"pointer\" data-link=\"/accounts/906630/vehicles/654628\"><td><p class=\"b-text\"><i class=\"svp b-link__icon green svp-down_q\"></i> K 325 PK 777 RUS</p></td><td><p class=\"b-text\"><i class=\"svp b-link__icon gray svp-by\"></i>БУ отсутствует </p></td><td><p class=\"b-text\">Не назначена</p></td></tr></tbody></table><div class=\"pagination-container t-center\"></div><div class=\"b-devider\"></div></div></div><div class=\"tab-panel__content\" id=\"listTsGroup\"><div class=\"b-form-block\"><div class=\"row\"><div class=\"col-4\"><div class=\"b-form-group no-edit\"><label class=\"b-form-group__label\" for=\"vehicle-group-account\">Лицевой счет</label><select name=\"accounts\" id=\"vehicle-group-account\" class=\"b-form-group__select\" data-role=\"vehicle-group-account\" onchange=\"vehicleGroupSearch()\"><option selected=\"selected\" value=\"906630\">101 009 066 305 </option></select><button class=\"b-form-group__icon\" type=\"button\"><i class=\"svp svp-arrow_left_q\"></i></button></div></div><div class=\"col-5\"><div class=\"b-form-group\"><label class=\"b-form-group__label\" for=\"search-vehicle-group\">Найти группу по названию, ФИО или телефону менеджера</label><input type=\"text\" name=\"name\" id=\"name\" value=\"\" class=\"b-form-group__input\" data-role=\"vehicle-group-search-query\" onkeyup=\"vehicleGroupSearch()\" /><button class=\"b-form-group__icon\" type=\"button\"><i class=\"svp svp-search\"></i></button></div></div><div class=\"col-3\"><a class=\"btn\" href=\"/accounts/906630/vehicle_groups/new\">Добавить группу</a></div></div></div><div class=\"b-devider\"></div><p class=\"b-text\">Здесь пока ничего нет</p></div><div class=\"tab-panel__content\" id=\"orderDevice\"><div class=\"toolbar\"><div class=\"toolbar__item\" data-visible-id=\"1\"><a class=\"b-link\" href=\"/new_device_request/new\"><i class=\"b-link__icon svp svp-edit\"></i>Оформить предзаказ БУ</a></div></div><table class=\"b-table b-table_full b-table_middle\"><thead><tr><th>Номер заказа:</th><th>Дата заказа:</th><th>Статус заказа:</th><th>Количество БУ:</th><th>Доставка:</th></tr></thead><tr class=\"pointer\" data-link=\"/device_requests/58498\"><td><div class=\"b-checkbox b-hide\" data-id=\"1\" data-show=\"false\"><input class=\"b-checkbox__input\" id=\"checkbox1\" type=\"checkbox\" /><label class=\"b-checkbox__label\" for=\"checkbox1\"><i class=\"b-checkbox__field\"></i></label></div><p class=\"b-text b-text_big b-text_inline\">№ 1500058497</p></td><td><p class=\"b-text\"><i class=\"svp svp-caledar\"></i> 2015-11-23 15:09</p></td><td><p class=\"b-text\"> Статус: Оформлено. Изменен: 2015-11-23 15:09.</p></td><td><p class=\"b-text\"><i class=\"svp svp-by\"></i> 1</p></td><td><p class=\"b-text\">О времени вывоза БУ будет сообщено дополнительно</p></td></tr></table></div></div></div></div></div></div><div class=\"clearfix\"></div><footer class=\"footer\"><p class=\"footer__help\">Служба поддержки:<span class=\"footer__phones\"> <a class=\"footer__phone\" style=\"margin-left: 2.5rem;\" href=\"tel:88005500202\">8 (800) 550-02-02</a> <a class=\"footer__phone\" href=\"tel:74955400202\">+7 (495) 540-02-02</a></span></p><p class=\"footer__copy\">©2016 «Платон» Личный кабинет</p><ul class=\"footer__menu\"><li class=\"footer__menu__item\"><a class=\"footer__menu__link\" href=\"http://www.platon.ru/\">Интернет-сайт Платон</a></li></ul><a class=\"tutorial-link\" target=\"_blank\" href=\"http://platon.ru/LK_platon.pdf\"><i class=\"tutorial-link__icon\"></i>Инструкция пользователя</a></footer><div id=\"modal_container\"></div><div class=\"loader\"><ul class=\"loader__container\"><li class=\"loader__item\"></li><li class=\"loader__item\"></li><li class=\"loader__item\"></li><li class=\"loader__item\"></li><li class=\"loader__item\"></li></ul></div><script src=\"//cdn.platon.ru/arm-lk/main.min.js\"></script><script src=\"/assets/application-4a22650cd882c51553d188ca381bd78ea33b6f326cc8ccc113e72fd1ab45e43a.js\"></script></body></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