Bird
Raised Fist0
Rubyprogramming~5 mins

Regex literal syntax (/pattern/) in Ruby - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a regex literal in Ruby?
A regex literal in Ruby is a pattern written between slashes, like /pattern/, used to match text.
Click to reveal answer
beginner
How do you write a regex literal to match the word 'cat' exactly?
You write /cat/. This matches the exact sequence of characters 'cat' anywhere in the text.
Click to reveal answer
intermediate
What does the regex literal /\d+/ match?
It matches one or more digits in a row. \d means any digit, and + means one or more times.
Click to reveal answer
intermediate
How do you include options like case-insensitive matching in a regex literal?
Add a letter after the closing slash. For example, /cat/i matches 'cat', 'Cat', or 'CAT'.
Click to reveal answer
intermediate
How do you write a regex literal to match a string that starts with 'hello'?
Use the caret symbol ^ at the start: /^hello/. This matches 'hello' only at the beginning of the text.
Click to reveal answer
What does the regex literal /ruby/ match?
AThe exact sequence 'ruby' anywhere in the text
BOnly the word 'Ruby' with capital R
CAny word ending with 'ruby'
DOnly the start of a string
How do you write a regex literal to match one or more digits?
A/\d+/
B/\w+/
C/\s+/
D/\D+/
What does the i after a regex literal do? For example, /cat/i
AMatches only at the start of the string
BMakes the regex match whitespace
CMatches only digits
DMakes the match case-insensitive
Which regex literal matches a string that starts with 'hello'?
A/hello$/
B/^hello/
C/hello/
D/^hello$/
How do you write a regex literal to match a newline character?
A/\s/
B/\t/
C/\n/
D/\r/
Explain how to write a regex literal in Ruby and how to add options like case-insensitivity.
Think about the slashes and letters after them.
You got /4 concepts.
    Describe how anchors like ^ and $ work inside regex literals.
    Anchors fix where the match happens.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the correct way to write a regex literal in Ruby to match the word cat?
      easy
      A. regex('cat')
      B. "cat"
      C. 'cat'
      D. /cat/

      Solution

      1. Step 1: Understand regex literal syntax

        In Ruby, regex literals are written between slashes, like /pattern/.
      2. Step 2: Identify the correct pattern for 'cat'

        The pattern to match the word 'cat' is simply /cat/.
      3. Final Answer:

        /cat/ -> Option D
      4. Quick Check:

        Regex literal = /pattern/ [OK]
      Hint: Regex literals always use slashes /pattern/ in Ruby [OK]
      Common Mistakes:
      • Using quotes instead of slashes
      • Calling a non-existent regex() function
      • Confusing string and regex syntax
      2. Which of the following is the correct regex literal to match the word Dog case-insensitively in Ruby?
      easy
      A. /Dog/m
      B. /Dog/g
      C. /Dog/i
      D. /Dog/

      Solution

      1. Step 1: Identify the case-insensitive option

        In Ruby regex, the i option after the slashes makes matching case-insensitive.
      2. Step 2: Check the options given

        Only /Dog/i uses the correct i flag for case-insensitive matching.
      3. Final Answer:

        /Dog/i -> Option C
      4. Quick Check:

        Case-insensitive flag = i [OK]
      Hint: Use /pattern/i for case-insensitive regex in Ruby [OK]
      Common Mistakes:
      • Using g or m flags which mean different things
      • Omitting the i flag for case-insensitivity
      • Placing flags inside the slashes
      3. What will be the output of this Ruby code?
      text = "Hello World"
      match = text =~ /world/i
      puts match
      medium
      A. nil
      B. 6
      C. 0
      D. Error

      Solution

      1. Step 1: Understand the =~ operator with regex

        The operator =~ returns the index of the first match or nil if no match.
      2. Step 2: Analyze the regex and string

        The regex /world/i matches 'World' ignoring case. In "Hello World", 'World' starts at index 6 (0-based).
      3. Final Answer:

        6 -> Option B
      4. Quick Check:

        Case-insensitive match index = 6 [OK]
      Hint: =~ returns match start index or nil if no match [OK]
      Common Mistakes:
      • Ignoring case-insensitive flag i
      • Thinking output is true/false instead of index
      • Assuming match starts at 0 always
      4. Identify the error in this Ruby regex literal:
      pattern = /hello/i/
      
      medium
      A. Extra slash at the end causes syntax error
      B. Missing quotes around pattern
      C. Missing i flag for case-insensitivity
      D. Regex literals cannot have flags

      Solution

      1. Step 1: Check regex literal syntax

        A regex literal starts and ends with a single slash. Here, there is an extra slash at the end.
      2. Step 2: Identify the syntax error

        The extra slash after /hello/i is invalid and causes a syntax error.
      3. Final Answer:

        Extra slash at the end causes syntax error -> Option A
      4. Quick Check:

        Regex literal must start and end with one slash pair [OK]
      Hint: Regex literals have exactly two slashes, no extras [OK]
      Common Mistakes:
      • Adding extra slash after regex
      • Confusing regex with string quotes
      • Thinking flags go inside slashes
      5. You want to find all words starting with a or A in a string using a regex literal. Which regex literal correctly matches this requirement?
      hard
      A. /\b[a]\w*/i
      B. /\b[A]\w*/
      C. /\b[a]\w*/
      D. /\b[a-z]\w*/i

      Solution

      1. Step 1: Understand the requirement

        We want words starting with 'a' or 'A'. Using case-insensitive flag i simplifies matching both.
      2. Step 2: Analyze options

        /\b[a]\w*/i uses /\b[a]\w*/i which matches word boundary, then 'a' (case-insensitive), then zero or more word chars. This matches words starting with 'a' or 'A'.
      3. Final Answer:

        /\b[a]\w*/i -> Option A
      4. Quick Check:

        Use i flag to match both 'a' and 'A' easily [OK]
      Hint: Use /pattern/i to match letters ignoring case [OK]
      Common Mistakes:
      • Listing both 'a' and 'A' inside brackets without i flag
      • Using wrong character classes
      • Missing word boundary \b
      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