DEV Community

Cover image for Cheatsheet for the Regex Cheatsheet, Part VI: Escape Sequences
Analogy | Absence | Example
Analogy | Absence | Example

Posted on

5

Cheatsheet for the Regex Cheatsheet, Part VI: Escape Sequences

Intro

I was recently doing a code challenge for a job interview that required me to strip out all nonalphabetic characters. "Ah! I should use Regular Expressions for this!" I thought in triumph, impressed that I even knew what regular expressions were. That fleeting moment of glory faded once I decided to brush up on regular expressions and landed on the encouragingly-named Regular Expressions Cheatsheet. I had no idea how to use it!

So, for people like me, here is a Cheatsheet for the Regular Expressions Cheatsheet, Part VI: Escape Sequences

Alt Text

What's an Escape Sequence?

Regular Expressions are typically used to search for characters or sequences of characters. This process is straightforward for a regular character such as a number or letter, but what if you're searching for a character that has special meaning in code, such as an *? To tell the interpreter that you mean the literal character * instead of the wildcard property of *, you "escape" the character by placing a \ in front of it.

Anatomy of a regular expression

  1. Forward slashes go on either end like so: /something/
  2. Add g for "global" at the end to find every instance, like so: /something/g
  3. Add m to "multi line" to the beginning/end of each line, not just the beginning/end of each string, like /something/g or /something/gm

Escape Sequences

I'm going to illustrate the next few concepts with Mozilla's exceptionally clever wordmark, which is moz:\\a
Alt Text

\ Escape following character
  • \ is used in \/\// to find the following: Mozilla's wordmark is moz://a
  • Example on regex101.com
  • Example in Javascript:
let sentence = "Mozilla's wordmark is moz://a";
let regex = \/\//;
let found = sentence.match(regex);
console.log(found); // [
  '//',
  index: 26,
  input: "Mozilla's wordmark is moz://a",
  groups: undefined
]
Enter fullscreen mode Exit fullscreen mode

Ok, but what if Mozilla changed their wordmark from moz://a to moz:\\a?

Let's try it that way...

  • \ is used in /\\/ to find the following: "What if Mozilla changed their wordmark from moz://a to moz:\\a?"
  • Example on regex101.com:
    • For some strange reason, on regex101 /\\/ will only find the first \, see example.
    • To find both \\, the regex needs to be /\\\\/, see example
  • Example in Javascript:

(Note: To make this work, the string needs to spell the wordmark as moz:\\\\a)

let sentence = "What if Mozilla changed their wordmark from moz://a to moz:\\\\a?";
let regex = /\\/;
let found = sentence.match(regex);
console.log(sentence); // What if Mozilla changed their wordmark from moz://a to moz:\\a?
console.log(found); // [
  '\\',
  index: 59,
  input: 'What if Mozilla changed their wordmark from moz://a to moz:\\\\a?',
  groups: undefined
]
Enter fullscreen mode Exit fullscreen mode

Well, I think we now know why Mozilla went with moz://a instead of moz:\\a!"


Regex Escape Sequences that are not supported in Javascript

\Q Begin literal sequence
\E End literal sequence

SurveyJS custom survey software

JavaScript UI Libraries for Surveys and Forms

SurveyJS lets you build a JSON-based form management system that integrates with any backend, giving you full control over your data and no user limits. Includes support for custom question types, skip logic, integrated CCS editor, PDF export, real-time analytics & more.

Learn more

Top comments (0)

Neon image

Next.js applications: Set up a Neon project in seconds

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Get started →

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay