A better version of regex 101
| 1 | <!DOCTYPE html> |
| 2 | <html lang="en" class="notranslate" translate="no" data-theme="light"> |
| 3 | |
| 4 | <head> |
| 5 | <meta charset="UTF-8"> |
| 6 | <meta name="apple-mobile-web-app-capable" content="yes"> |
| 7 | <meta name="apple-mobile-web-app-status-bar-style" content="default"> |
| 8 | <meta name="mobile-web-app-capable" content="yes"> |
| 9 | <meta name="HandheldFriendly" content="True"> |
| 10 | <meta name="MobileOptimized" content="320"> |
| 11 | <meta name="format-detection" content="telephone=no"> |
| 12 | <meta name="title" content="regex101"> |
| 13 | |
| 14 | <link rel="stylesheet" type="text/css" href="/static/bundle.5f9425999a8b7f94b3ae.css" id="mainCss"> |
| 15 | |
| 16 | <link rel="preconnect" href="https://fonts.googleapis.com"> |
| 17 | <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> |
| 18 | <link rel="preload" |
| 19 | href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;1,400&family=Source+Code+Pro:wght@400;500;700&display=swap" |
| 20 | as="style" onload="this.onload=null;this.rel='stylesheet'"> |
| 21 | |
| 22 | <link rel="apple-touch-icon" sizes="57x57" href="/static/assets/icon-57.png"> |
| 23 | <link rel="apple-touch-icon" sizes="60x60" href="/static/assets/icon-60.png"> |
| 24 | <link rel="apple-touch-icon" sizes="72x72" href="/static/assets/icon-72.png"> |
| 25 | <link rel="apple-touch-icon" sizes="76x76" href="/static/assets/icon-76.png"> |
| 26 | <link rel="apple-touch-icon" sizes="114x114" href="/static/assets/icon-114.png"> |
| 27 | <link rel="apple-touch-icon" sizes="120x120" href="/static/assets/icon-120.png"> |
| 28 | <link rel="apple-touch-icon" sizes="144x144" href="/static/assets/icon-144.png"> |
| 29 | <link rel="apple-touch-icon" sizes="152x152" href="/static/assets/icon-152.png"> |
| 30 | <link rel="apple-touch-icon" sizes="180x180" href="/static/assets/icon-180.png"> |
| 31 | |
| 32 | <link rel="shortcut icon" href="/static/assets/favicon.ico" type="image/x-icon"> |
| 33 | <link rel="icon" type="image/png" sizes="16x16" href="/static/assets/icon-16.png"> |
| 34 | <link rel="icon" type="image/png" sizes="32x32" href="/static/assets/icon-32.png"> |
| 35 | <link rel="icon" type="image/png" sizes="96x96" href="/static/assets/icon-96.png"> |
| 36 | <link rel="icon" type="image/png" sizes="192x192" href="/static/assets/icon-192.png"> |
| 37 | |
| 38 | <link rel="manifest" href="/static/assets/manifest.webmanifest"> |
| 39 | <meta name="theme-color" content="#3366a4"> |
| 40 | |
| 41 | <link href="https://regex101.com" rel="home" /> |
| 42 | <meta name="viewport" |
| 43 | content="width=device-width, minimum-scale=1.0, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> |
| 44 | <meta name="keywords" |
| 45 | content="regex,regex tester,regular expression,debugger,pcre,php,golang,java,javascript,python,.net,c#"> |
| 46 | <meta name="description" |
| 47 | content="Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET."> |
| 48 | <meta name="author" content="Firas Dib"> |
| 49 | |
| 50 | <meta property="twitter:card" content="summary_large_image"> |
| 51 | <meta property="twitter:site" content="@regex101"> |
| 52 | <meta property="twitter:title" content="regex101: build, test, and debug regex"> |
| 53 | <meta property="twitter:description" |
| 54 | content="Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET."> |
| 55 | <meta property="twitter:creator" content="@regex101"> |
| 56 | <meta property="twitter:image" content="https://regex101.com/static/assets/card.png"> |
| 57 | <meta property="twitter:domain" content="regex101.com"> |
| 58 | |
| 59 | <meta property="og:image" content="https://regex101.com/static/assets/card.png"> |
| 60 | <meta property="og:image:width" content="1200"> |
| 61 | <meta property="og:image:height" content="630"> |
| 62 | <meta property="og:title" content="regex101: build, test, and debug regex"> |
| 63 | <meta property="og:description" |
| 64 | content="Regular expression tester with syntax highlighting, explanation, cheat sheet for PHP/PCRE, Python, GO, JavaScript, Java, C#/.NET."> |
| 65 | <meta property="og:url" content="https://regex101.com/"> |
| 66 | <meta property="og:site_name" content="regex101"> |
| 67 | <meta property="og:type" content="website"> |
| 68 | |
| 69 | <meta name="google" content="notranslate" /> |
| 70 | <title>regex101: build, test, and debug regex</title> |
| 71 | <script>var l; document.addEventListener("readystatechange", l = function (h) { if ("interactive" === h.target.readyState) { document.removeEventListener("readystatechange", l); try { var c, d, e, a = null == (d = JSON.parse(null == (c = localStorage) ? void 0 : c.getItem("regex101-state"))) ? void 0 : null == (e = d.settings) ? void 0 : e.theme, b, f, g, k = (null == (b = window) ? 0 : null == (f = b.matchMedia) ? 0 : null == (g = f.call(b, "(prefers-color-scheme: dark)")) ? 0 : g.matches) ? "dark" : "light"; document.documentElement.setAttribute("data-theme", a && "AUTO" !== a ? a : k) } catch (m) { console.error("Unable to set theme", m) } } });</script> |
| 72 | <script> |
| 73 | window.__INITIAL_STATE__ = '%7B%22account%22%3A%7B%22data%22%3A%5B%5D%2C%22pages%22%3A0%2C%22allTags%22%3A%5B%5D%2C%22staleData%22%3Atrue%7D%2C%22general%22%3A%7B%22permalinkFragment%22%3Anull%2C%22version%22%3Anull%2C%22deleteCode%22%3Anull%2C%22userId%22%3Anull%2C%22email%22%3Anull%2C%22profilePicture%22%3Anull%2C%22serviceProvider%22%3Anull%2C%22isFavorite%22%3Afalse%2C%22isLibraryEntry%22%3Afalse%2C%22title%22%3Anull%2C%22documentTitle%22%3A%22build%2C%20test%2C%20and%20debug%20regex%22%2C%22metaDescription%22%3A%22Regular%20expression%20tester%20with%20syntax%20highlighting%2C%20explanation%2C%20cheat%20sheet%20for%20PHP%2FPCRE%2C%20Python%2C%20GO%2C%20JavaScript%2C%20Java%2C%20C%23%2F.NET.%22%2C%22tags%22%3A%5B%5D%2C%22cookie%22%3A%22%22%2C%22sponsorData%22%3Anull%2C%22currentTheme%22%3A%22AUTO%22%2C%22permalinkIsEditable%22%3Atrue%2C%22isOwner%22%3Afalse%7D%2C%22libraryEntry%22%3A%7B%22title%22%3Anull%2C%22description%22%3Anull%2C%22author%22%3Anull%7D%2C%22quiz%22%3A%7B%22allTasks%22%3A%5B%5D%7D%2C%22regexAreaParser%22%3A%7B%22tokens%22%3A%5B%5D%2C%22subpatterns%22%3A%5B%5D%2C%22captureGroupMap%22%3A%7B%7D%2C%22captureGroupCount%22%3A0%2C%22status%22%3Anull%2C%22definedSubpatterns%22%3A%5B%5D%7D%2C%22regexEditor%22%3A%7B%22flavor%22%3A%22pcre2%22%2C%22delimiter%22%3A%22%2F%22%2C%22flags%22%3A%22gm%22%2C%22regex%22%3A%22%22%2C%22testString%22%3A%22%22%2C%22matchResult%22%3A%5B%5D%2C%22error%22%3Anull%2C%22substString%22%3A%22%22%2C%22listSubstString%22%3A%22%22%2C%22hasUnsavedData%22%3Atrue%2C%22regexVersions%22%3A0%2C%22showMatchArea%22%3Atrue%2C%22showSubstitutionArea%22%3Afalse%2C%22showUnitTestArea%22%3Afalse%2C%22showListSubstitutionArea%22%3Afalse%7D%2C%22regexLibrary%22%3A%7B%22libraryData%22%3A%5B%5D%2C%22pages%22%3A0%2C%22details%22%3Anull%7D%2C%22rightSidebar%22%3A%7B%22activeSubsection%22%3A%22EXPLANATION%22%2C%22visibleSections%22%3A%5B%22EXPLANATION%22%2C%22MATCH_INFO%22%2C%22QUICKREF%22%5D%2C%22hiddenSections%22%3A%5B%5D%2C%22width%22%3Anull%7D%2C%22settings%22%3A%7B%22maxExecutionTime%22%3A2000%2C%22theme%22%3A%22AUTO%22%2C%22nonParticipatingGroups%22%3Afalse%2C%22displayWhitespace%22%3Atrue%2C%22colorizeSyntax%22%3Atrue%2C%22autoComplete%22%3Afalse%2C%22wrapLines%22%3Atrue%2C%22testAreaLineNumbers%22%3Afalse%2C%22regexAreaLineNumbers%22%3Afalse%2C%22language%22%3A%22ENGLISH%22%2C%22storageSaved%22%3Anull%2C%22storageLoaded%22%3Anull%2C%22editorTooltips%22%3Atrue%2C%22alwaysCollapseLeftSidebar%22%3Afalse%2C%22alwaysCollapseRightSidebar%22%3Afalse%2C%22defaultFlavor%22%3A%22pcre2%22%2C%22showWarningUnsavedProgress%22%3Atrue%2C%22defaultCodeGenLanguage%22%3A%22%22%2C%22calculateRegexSteps%22%3Atrue%2C%22defaultTabBehavior%22%3Atrue%2C%22disableKeyboardShortcuts%22%3Afalse%7D%2C%22unitTests%22%3A%7B%22tests%22%3A%5B%5D%2C%22testResults%22%3A%7B%7D%2C%22testsRunning%22%3Afalse%2C%22testFilter%22%3A%22ALL%22%7D%7D'; |
| 74 | </script> |
| 75 | |
| 76 | <script src="/static/vendors-bundle.951c75033b74008308ae.js" defer></script> |
| 77 | <script src="/static/bundle.9f9a755d912651405097.js" defer></script> |
| 78 | |
| 79 | <script defer> |
| 80 | (function () { var a = "Worker" in window, b = "Promise" in window, c = "object" === typeof WebAssembly && "function" === typeof WebAssembly.instantiate; a && b && c || (window.__LEGACY__ = !0, window.addEventListener("load", function () { document.body.innerHTML = '<div style="padding: 60px; max-width: 600px;margin: 0 auto; text-align: center; font-size: 20px; line-height: 1.5;"><div><p>Unfortunately it seems your browser does not meet the criteria to properly render and utilize this website. You need a browser with support for web workers and Web Assembly.</p><a href="http://browsehappy.com/" style="color: blue;">Please upgrade your browser and come back</a></div><p><strong>Note: if you\'re running a newer version of Edge, and still getting this message, check your security settings as they can be preventing webassembly from running.</strong></p><p><strong>Debug results:</strong> Worker=' + a + ", Promise=" + b + ", WASM=" + c + "</strong></p></div>" }, { once: !0 })) })(); |
| 81 | </script> |
| 82 | |
| 83 | <link rel="preload" href="/static/quickref.2c3113f06c479a67c60a.chunk.js" as="script" /> |
| 84 | <link rel="preload" href="/static/653.6e679a10c3aae1d7e364.css" as="style" /> |
| 85 | |
| 86 | <script fetchpriority="low" defer data-domain="regex101.com" |
| 87 | src="https://analytics.regex101.com/js/plausible.js"></script> |
| 88 | </head> |
| 89 | |
| 90 | |
| 91 | <body> |
| 92 | <div id="regex-app"></div> |
| 93 | <script> |
| 94 | window.onload = () => { |
| 95 | const target = document.getElementsByClassName('AUc0W')[0] |
| 96 | const app = document.createElement('div') |
| 97 | app.prepend('hello') |
| 98 | const appScript = document.createElement('script') |
| 99 | appScript.type = 'module' |
| 100 | appScript.src = '/src/main.jsx' |
| 101 | app.id = 'root' |
| 102 | target.prepend(app) |
| 103 | target.append(appScript) |
| 104 | } |
| 105 | </script> |
| 106 | </body> |
| 107 | |
| 108 | </html> |