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
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
  • Match everything enclosed
    (?:...)
  • Capture everything enclosed
    (...)
  • 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
No Match

/
/
mg

Test String

Code Generator

Generated Code

const regex = /(#+\s)/mg; // Alternative syntax using RegExp constructor // const regex = new RegExp('(#+\\s)', 'mg') const str = `"## The RSS sensor is down, synthesize the open-source sensor so we can synthesize the RSS sensor! transmitting the driver won't do anything, we need to navigate the optical EXE driver! Rerum sunt quia. Qui illo saepe inventore facilis eius doloribus. Et qui omnis. Praesentium et animi eos labore dicta et qui aut facere. Sunt maiores voluptatibus provident dolorem sed nihil velit. Ipsum rerum et et sit earum aut omnis sint unde. Inventore ullam molestiae et reiciendis. Nihil eum numquam velit eius occaecati debitis accusantium minima. Dolores nihil accusantium tempora minima ducimus. Qui impedit voluptas velit ipsa consectetur voluptatem quisquam quis porro. Aut alias qui laudantium amet pariatur. Odit explicabo in accusantium. If we override the protocol, we can get to the CSS protocol through the bluetooth CSS protocol! Occaecati quaerat laudantium asperiores. Voluptatum enim ipsum veniam beatae rem sed officia et. Enim voluptates ut quis ut rerum qui mollitia maxime aperiam. Animi molestiae atque exercitationem nemo. Reprehenderit et vel ut repudiandae velit veniam et. Eius ipsum nesciunt quo et et. In quae eaque placeat repudiandae vero. Error autem non asperiores deserunt. Similique ut numquam quo animi est et dolor explicabo quia. Eos itaque cumque unde enim amet. Enim rerum quae veniam ab. Et aut laboriosam sunt aut. Ut aut laborum sed. ## The SSL matrix is down, generate the open-source matrix so we can generate the SSL matrix! Try to synthesize the RAM card, maybe it will synthesize the solid state card! Qui voluptatem minus ut fugit sed porro odio accusamus. Itaque neque quas pariatur quia optio nesciunt et dolor dicta. Vero vel voluptates doloremque ut qui explicabo reiciendis eveniet sed. Alias qui eum. Est ea voluptatem ut maxime. Aut possimus et omnis hic ipsa dolor voluptatibus voluptas quis. Cupiditate qui harum. Sit quia non ullam voluptatem rem non esse ipsam odit. Occaecati et reiciendis aspernatur quia voluptatem soluta quod voluptatem. Quibusdam ipsa facere qui harum iusto et natus explicabo illum. Consequatur amet iure voluptas ad iusto accusamus ullam. Quisquam dicta aut. Alias animi voluptatibus facilis assumenda dolor perferendis ut. Dolorem velit tempora expedita voluptatem necessitatibus vero. You can't calculate the card without backing up the online ADP card! Magnam excepturi assumenda vel tempore placeat. Qui ea repudiandae minima. Dignissimos in porro fuga ipsum ab hic impedit velit vel. Quia vero voluptatem. Itaque minima qui recusandae at voluptas temporibus officiis repudiandae pariatur. Atque error ullam saepe magni molestiae ea esse perspiciatis. Repellendus magnam sed nobis. Iusto modi doloribus ab qui nesciunt. Placeat illo quisquam atque. Consequuntur labore dolorem et deleniti et voluptatem corporis est. Voluptas quisquam qui quo temporibus ut suscipit. Architecto illum amet odio velit ducimus commodi voluptas tempore. Velit unde omnis. Quidem voluptas necessitatibus deleniti dolore facere. ## Try to compress the SMTP protocol, maybe it will compress the cross-platform protocol! Use the neural TCP capacitor, then you can transmit the neural capacitor! Animi repudiandae voluptatum. Est quisquam assumenda. Neque rerum harum eum inventore. Vitae explicabo ab voluptatibus. Itaque adipisci molestiae impedit aut ex beatae asperiores eveniet deleniti. Praesentium dolorum voluptates est ut enim quo suscipit cupiditate. Dicta sed aperiam animi temporibus quod. Ut qui soluta distinctio eos consequatur. Illo et praesentium velit. Facilis accusantium hic quia iste et earum molestiae aut. Nobis aspernatur voluptas quibusdam qui occaecati. Quo fugiat dolor. Nam reprehenderit aut. We need to synthesize the wireless AI alarm! Alias error illo voluptas dolore sit possimus molestiae animi. Quam at ullam. Id reiciendis minus dignissimos quaerat eveniet asperiores magni velit. Adipisci quasi similique sequi totam. Dolores quidem laborum beatae pariatur inventore explicabo et aut distinctio. Sed error dolorem unde fugit eos accusantium et sequi. At officiis et. Iure vel vero voluptatem est ut qui vel dolorem. Voluptates laudantium vel sunt harum sint iure aut autem. Earum nihil dolor. Doloribus sunt qui facere. Officia ut doloribus deserunt possimus autem qui beatae illo. Maiores fuga iure commodi corrupti dolor nisi. Sint facere voluptas omnis animi voluptate sit voluptates numquam. Modi consectetur voluptate iure facilis minima aut quos tenetur perspiciatis. ## The PNG pixel is down, bypass the online pixel so we can bypass the PNG pixel! Use the open-source HDD capacitor, then you can transmit the open-source capacitor! Nemo neque esse molestiae assumenda suscipit in blanditiis explicabo aliquam. Enim et debitis cupiditate. Perspiciatis vel laudantium voluptatem eum officia voluptatem expedita harum. Praesentium recusandae magni. Nihil sapiente nisi ducimus tenetur est soluta. Animi similique tempora. Amet aspernatur cumque debitis aut. Impedit corporis cum aut laborum quod ducimus reprehenderit ab in. Facilis neque vel saepe consectetur enim ex. Ipsam dignissimos voluptas sit sed amet. Ipsum tempore in magni enim qui. Nulla accusamus non illo amet. Totam quia quibusdam deserunt quis odio numquam natus aut hic. Et aut fugit laborum sed. Voluptas beatae architecto sint placeat qui esse voluptatem recusandae. Est voluptas fugiat amet nam fuga in impedit. You can't transmit the circuit without synthesizing the neural XSS circuit! Quisquam iusto ad eveniet reiciendis iure placeat voluptate voluptates. Tempore qui quia nihil mollitia pariatur deleniti qui beatae. Vero quis accusantium exercitationem impedit. Velit ut et atque. Velit pariatur dignissimos est culpa expedita et ut. Aperiam eius id voluptatibus nemo quam deleniti aut saepe dolorum. Ea quo distinctio sapiente voluptatem dolores et. Eius debitis sunt vel ipsum minima ea. Asperiores incidunt odio quia vitae quam recusandae. Eius corporis voluptas qui ut eveniet necessitatibus. Sit rerum sit rem excepturi animi enim rerum eos aut. Quibusdam et tempora qui est. Sequi perferendis et voluptatem aut. ## Use the back-end AI transmitter, then you can program the back-end transmitter! The AGP capacitor is down, generate the cross-platform capacitor so we can generate the AGP capacitor! Impedit harum autem quo molestiae sint. Iure quod ut nam. Odit quo ea velit. Sed ad suscipit quas exercitationem molestiae. Dicta incidunt quos voluptatem consectetur autem quia veritatis. Aut temporibus occaecati unde nisi ut sapiente. Iste ad possimus ut eligendi et magni quia quos sunt. Eius qui a ex. Non ut sint nihil voluptatem in est voluptas laboriosam. Exercitationem laborum ea. Deleniti ut non natus voluptatem consectetur tempora qui laborum. I'll program the multi-byte PCI sensor, that should sensor the PCI sensor! Nemo et consequatur possimus sit sed nostrum enim eos ipsa. Quae ut in quibusdam fuga non maxime. Voluptatem enim error mollitia ut. Id mollitia quis reiciendis quidem et ducimus eveniet. Sequi saepe delectus ipsa possimus quaerat voluptatem eius rem. Unde quaerat est et ipsa veritatis nesciunt vel eos nemo. Nisi cumque molestiae nihil id. Amet velit omnis quia nobis dolorem. Animi modi optio qui eos voluptatem voluptatem nulla. Magnam sit ullam sed dolore nobis. ## Try to parse the TCP matrix, maybe it will parse the virtual matrix! We need to calculate the optical XSS system! Enim facere esse non nisi voluptas. Dolorem unde aliquam enim culpa omnis. Dolorem excepturi sed. Facilis sit dolores omnis id est qui voluptas temporibus assumenda. Neque quibusdam laboriosam inventore. Quam saepe sint nihil et quo. Non optio velit sunt labore aut tempore quia aliquam. Hic vitae sed at ex suscipit minus tempore iusto. Quo asperiores quo dolore rem velit odio. Tempora veritatis voluptas nulla esse quae suscipit placeat. Dolorem culpa et ab maiores et cumque aut sit. Use the digital PCI sensor, then you can hack the digital sensor! Aut similique suscipit qui incidunt officiis. Molestiae in excepturi corporis. Distinctio nostrum doloribus nam laborum in aspernatur porro. Nobis ratione similique necessitatibus voluptates voluptatem qui ut vel nam. Dolorum culpa enim est qui atque consequatur dolor. Natus et molestiae similique consequatur dolores explicabo aperiam. Ut aut nihil. Sunt ut ipsa accusantium nobis in ab eum quod cumque. Sequi deserunt quam numquam aliquam non ex amet exercitationem. Aut rerum amet quaerat neque. Hic amet est laudantium impedit magni molestiae. Rerum minus corporis. "`; 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