0
0
Rubyprogramming~20 mins

Capture groups in Ruby - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Ruby Capture Groups Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of capture groups in Ruby regex
What is the output of this Ruby code snippet?
Ruby
text = "Name: John, Age: 30"
match = /Name: (\w+), Age: (\d+)/.match(text)
puts match[1]
puts match[2]
AJohn\n30
BName\nAge
CJohn, Age: 30
Dnil\nnil
Attempts:
2 left
💡 Hint
Remember that capture groups are accessed by their index starting at 1.
Predict Output
intermediate
2:00remaining
Using named capture groups in Ruby
What will this Ruby code print?
Ruby
text = "Product: Book, Price: 15"
regex = /Product: (?<product>\w+), Price: (?<price>\d+)/
match = regex.match(text)
puts match[:product]
puts match[:price]
Aproduct\nprice
BBook\n15
CBook, Price: 15
Dnil\nnil
Attempts:
2 left
💡 Hint
Named capture groups can be accessed by symbol keys.
Predict Output
advanced
2:00remaining
Accessing a capture group index beyond available groups
What does this Ruby code print?
Ruby
text = "Date: 2024-06-15"
match = /Date: (\d{4})-(\d{2})-(\d{2})/.match(text)
p match[4]
AIndexError
BTypeError
Cnil
DNoMethodError
Attempts:
2 left
💡 Hint
Check how many capture groups are in the regex and the index used.
🧠 Conceptual
advanced
2:00remaining
Effect of non-capturing groups on match data
Given the regex /a(?:b)c(d)/ applied to the string "abcd", how many capture groups does the match have?
A0
B2
C3
D1
Attempts:
2 left
💡 Hint
Non-capturing groups do not count as capture groups.
Predict Output
expert
3:00remaining
Output of nested capture groups in Ruby
What is the output of this Ruby code?
Ruby
text = "abc123xyz"
regex = /(a(b(c)))(\d+)(x(y)z)/
match = regex.match(text)
puts match[0]
puts match[1]
puts match[2]
puts match[3]
puts match[4]
puts match[5]
puts match[6]
Aabc123xyz\nabc\nbc\nc\n123\nxyz\ny
Babc123xyz\nabc\nbc\nc\n123\nxyz\nnil
Cabc123xyz\nabc\nbc\nnil\n123\nxyz\ny
Dabc123xyz\nabc\nnil\nc\n123\nxyz\ny
Attempts:
2 left
💡 Hint
Nested capture groups are numbered from left to right by their opening parenthesis.