Bird
Raised Fist0
Rubyprogramming~5 mins

Common patterns and character classes in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the character class [a-z] represent in Ruby regular expressions?
It matches any single lowercase letter from a to z.
Click to reveal answer
beginner
What does the pattern \d match in Ruby regular expressions?
It matches any single digit character, equivalent to [0-9].
Click to reveal answer
intermediate
Explain the difference between \w and \W in Ruby regex.
\w matches any word character (letters, digits, and underscore), while \W matches any character that is NOT a word character.
Click to reveal answer
beginner
What does the pattern \s match in Ruby regular expressions?
It matches any whitespace character, including spaces, tabs, and newline characters.
Click to reveal answer
beginner
How do you match any character except a newline in Ruby regex?
Use the dot . character, which matches any character except newline by default.
Click to reveal answer
Which pattern matches any uppercase letter in Ruby regex?
A\d
B[A-Z]
C[a-z]
D\s
What does the pattern \D match?
AAny non-digit
BAny digit
CAny whitespace
DAny word character
Which pattern matches a whitespace character?
A\d
B\w
C\s
D\W
What does the pattern [^a-z] mean?
AMatches any lowercase letter
BMatches whitespace only
CMatches digits only
DMatches any character except lowercase letters
Which pattern matches any word character?
A\w
B\D
C\s
D\W
Describe the common character classes used in Ruby regular expressions and give an example of each.
Think about digits, letters, and spaces.
You got /5 concepts.
    Explain how to use negation inside character classes in Ruby regex and provide an example pattern.
    Negation flips what the class matches.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which Ruby regular expression pattern matches any single digit character?
      easy
      A. /\D/
      B. /\d/
      C. /\s/
      D. /\w/

      Solution

      1. Step 1: Understand \d in Ruby regex

        The pattern \d matches any digit character (0-9).
      2. Step 2: Compare with other options

        \w matches word characters (letters, digits, underscore), \s matches whitespace, \D matches non-digit characters.
      3. Final Answer:

        /\d/ -> Option B
      4. Quick Check:

        Digit pattern = /\d/ [OK]
      Hint: Remember \d means digit, \w means word character [OK]
      Common Mistakes:
      • Confusing \d with \w
      • Using /\D/ which matches non-digits
      • Thinking \s matches digits
      2. Which of the following is the correct Ruby syntax to match any word character one or more times?
      easy
      A. /\w+/
      B. /\w*/
      C. /\w?/
      D. /\w{}/

      Solution

      1. Step 1: Understand quantifiers in regex

        + means one or more times, * means zero or more, ? means zero or one.
      2. Step 2: Apply to \w

        /\w+/ matches one or more word characters, which is the correct syntax.
      3. Final Answer:

        /\w+/ -> Option A
      4. Quick Check:

        One or more word chars = /\w+/ [OK]
      Hint: Use + for one or more matches in regex [OK]
      Common Mistakes:
      • Using * which allows zero matches
      • Using ? which allows zero or one match
      • Using empty braces {} which is invalid
      3. What is the output of this Ruby code?
      text = "Room 101"
      match = text.match(/\d+/)
      puts match[0]
      medium
      A. 101
      B. Room
      C. 1
      D. nil

      Solution

      1. Step 1: Understand the regex /\d+/

        This pattern matches one or more digits in a row.
      2. Step 2: Apply match to string "Room 101"

        The digits "101" are matched as a group, so match[0] returns "101".
      3. Final Answer:

        101 -> Option A
      4. Quick Check:

        Digits matched = 101 [OK]
      Hint: \d+ grabs all digits in a row, not just one [OK]
      Common Mistakes:
      • Thinking it matches only one digit
      • Confusing match[0] with match object
      • Expecting the word part instead of digits
      4. Find the error in this Ruby code snippet:
      email = "user@example.com"
      if email =~ /\w+@\w+.\w+/
        puts "Valid email"
      else
        puts "Invalid email"
      end
      medium
      A. The regex should use \d instead of \w
      B. The =~ operator is used incorrectly
      C. The regex does not escape the dot properly
      D. The string should be in single quotes

      Solution

      1. Step 1: Examine the regex pattern

        The pattern /\w+@\w+.\w+/ uses an unescaped . which matches any character, not a literal dot.
      2. Step 2: Identify the error

        The dot after the domain must be escaped as \. to match the literal "." in email addresses.
      3. Final Answer:

        The regex does not escape the dot properly -> Option C
      4. Quick Check:

        Escape literal dot as \. [OK]
      Hint: Remember to escape dot as \. to match literal dot [OK]
      Common Mistakes:
      • Thinking dot doesn't need escaping
      • Misusing =~ operator
      • Confusing \w with \d in email regex
      5. You want to extract all words starting with a capital letter from the string "Hello World from Ruby". Which Ruby regex pattern should you use with scan?
      hard
      A. /\d+/
      B. /\b[a-z]\w*/
      C. /\s+/
      D. /\b[A-Z]\w*/

      Solution

      1. Step 1: Understand the requirement

        We want words starting with a capital letter, so first letter must be A-Z.
      2. Step 2: Analyze the regex options

        /\b[A-Z]\w*/ matches word boundary, then capital letter, then zero or more word chars.
      3. Step 3: Check other options

        /\b[a-z]\w*/ matches lowercase start, /\d+/ matches digits, /\s+/ matches spaces, so they don't fit.
      4. Final Answer:

        /\b[A-Z]\w*/ -> Option D
      5. Quick Check:

        Capital-start words = /\b[A-Z]\w*/ [OK]
      Hint: Use \b for word boundary and [A-Z] for capital letters [OK]
      Common Mistakes:
      • Using [a-z] instead of [A-Z]
      • Forgetting word boundary \b
      • Using digit or space patterns incorrectly
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard