New line, new match

In the previous lesson, we learned how to match the beginning and end of a string.
But what if we want to match the beginning and end of each line in a multi-line string?

That’s where you can use m flag.
The m flag changes the meaning of ^ and $ so they match the beginning and end of each line.
Not just the beginning and end of the whole text.

Hint: The m flag doesn’t automatically include the g flag

Task

Match every line that is a quote

/ /
"I am a quote"
I am not
"But I am"
I am "not enough to count"
Regex Cheatsheet

Here you find every Regex character explained

Anchors

  • ^ - Start of a string
  • $ - End of a string
  • \b - Word boundary
  • \B - Not word boundary

Quantifiers

  • ? - Optional
  • + - 1 or more times
  • * - 0 or more times
  • {n} - Exactly n times
  • {n,} - at least n times
  • {,m} - at most m times
  • {n,m} - Between n and m times

Character Classes

  • [abc] - Character Set
  • [^abc] - Not in character set
  • [a-z] - Range of characters
  • . - Any character except newline
  • \d - Digit
  • \D - Not a digit
  • \w - Word character
  • \W - Not a word character
  • \s - Whitespace
  • \S - Not whitespace

Groups

  • (abc) - Capturing group
  • (?:abc) - Non-capturing group
  • \1 - Group Reference

Lookarounds

  • (?=abc) - Positive lookahead
  • (?!abc) - Negative lookahead
  • (?<=abc) - Positive lookbehind
  • (?<!abc) - Negative lookbehind

Flags

  • g - Global
  • i - Case-insensitive
  • m - Multiline

Other Characters

  • \[Symbol] - Use a Regex Symbol as Text
  • | - Or