Bird
Raised Fist0
MATLABdata~20 mins

Regular expressions in MATLAB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Regex Master in MATLAB
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of regexpi with case-insensitive matching
What is the output of the following MATLAB code?
str = 'Matlab is fun';
expr = 'MAT';
idx = regexpi(str, expr);
disp(idx);
MATLAB
str = 'Matlab is fun';
expr = 'MAT';
idx = regexpi(str, expr);
disp(idx);
A[]
B[1]
C[4]
D[7]
Attempts:
2 left
💡 Hint
regexpi is case-insensitive and returns start indices of matches.
❓ Predict Output
intermediate
2:00remaining
Using regexp to extract tokens
What does the following MATLAB code output?
str = 'abc123def456';
tokens = regexp(str, '\\d+', 'match');
disp(tokens);
MATLAB
str = 'abc123def456';
tokens = regexp(str, '\d+', 'match');
disp(tokens);
A{'abc', 'def'}
B{'1', '2', '3', '4', '5', '6'}
C{'123', '456'}
D[]
Attempts:
2 left
💡 Hint
The pattern '\d+' matches one or more digits.
❓ Predict Output
advanced
2:00remaining
Output of regexprep with backreference
What is the output of this MATLAB code?
str = 'cat bat rat';
newStr = regexprep(str, '(\w+)at', '$1ot');
disp(newStr);
MATLAB
str = 'cat bat rat';
newStr = regexprep(str, '(\w+)at', '$1ot');
disp(newStr);
A'cat bot rat'
B'cat bat rat'
C'cot bat rat'
D'cot bot rot'
Attempts:
2 left
💡 Hint
Backreference $1 refers to the first captured group.
❓ Predict Output
advanced
2:00remaining
Error type from invalid regex pattern
What error does this MATLAB code produce?
str = 'hello';
expr = '(hello';
matches = regexp(str, expr);
MATLAB
str = 'hello';
expr = '(hello';
matches = regexp(str, expr);
AError: Unbalanced or unexpected parenthesis.
BError: Undefined function or variable 'hello'.
CError: Invalid character in expression.
DNo error, matches = [1].
Attempts:
2 left
💡 Hint
Check if the parentheses in the pattern are balanced.
🧠 Conceptual
expert
3:00remaining
Number of matches found by regexpi with overlapping patterns
Consider the MATLAB code below:
str = 'aaaa';
expr = 'aa';
matches = regexpi(str, expr);
numMatches = length(matches);

What is the value of numMatches after running this code?
MATLAB
str = 'aaaa';
expr = 'aa';
matches = regexpi(str, expr);
numMatches = length(matches);
A2
B3
C4
D1
Attempts:
2 left
💡 Hint
regexpi does not find overlapping matches by default.

Practice

(1/5)
1. What does the MATLAB function regexp do?
easy
A. Searches for text patterns in strings
B. Replaces text in strings
C. Sorts arrays numerically
D. Calculates the length of a string

Solution

  1. Step 1: Understand the purpose of regexp

    The regexp function in MATLAB is used to find matches of a pattern within text.
  2. Step 2: Compare with other functions

    regexprep replaces text, but regexp only searches for patterns.
  3. Final Answer:

    Searches for text patterns in strings -> Option A
  4. Quick Check:

    regexp = search function [OK]
Hint: Remember: regexp = search, regexprep = replace [OK]
Common Mistakes:
  • Confusing regexp with regexprep
  • Thinking regexp modifies strings
  • Mixing regexp with numeric functions
2. Which of the following is the correct syntax to find all digits in the string 'abc123' using regexp?
easy
A. regexp('abc123', '\\d+')
B. regexp('abc123', '\\w+')
C. regexp('abc123', '\\s+')
D. regexp('abc123', '\\D+')

Solution

  1. Step 1: Identify the pattern for digits

    In regular expressions, \d matches digits, and + means one or more.
  2. Step 2: Check the options

    regexp('abc123', '\\d+') uses \\d+ which correctly matches one or more digits. Others match word characters, spaces, or non-digits.
  3. Final Answer:

    regexp('abc123', '\\d+') -> Option A
  4. Quick Check:

    Digits = \d+ pattern [OK]
Hint: Use \\d+ to match one or more digits [OK]
Common Mistakes:
  • Using \w+ which matches letters and digits
  • Using \s+ which matches spaces
  • Using \D+ which matches non-digits
3. What is the output of the following MATLAB code?
str = 'cat bat rat';
matches = regexp(str, '\\b\w{3}\b', 'match');
disp(matches);
medium
A. ['cat', 'bat']
B. ['catbat', 'rat']
C. [] (empty cell array)
D. ['cat', 'bat', 'rat']

Solution

  1. Step 1: Understand the pattern '\\b\\w{3}\\b'

    The pattern matches word boundaries \\b around exactly 3 word characters \\w{3}.
  2. Step 2: Apply pattern to string

    The string has three 3-letter words: 'cat', 'bat', and 'rat'. All match the pattern.
  3. Final Answer:

    ['cat', 'bat', 'rat'] -> Option D
  4. Quick Check:

    Three 3-letter words matched [OK]
Hint: \b\w{3}\b matches exactly 3-letter words [OK]
Common Mistakes:
  • Ignoring word boundaries and matching partial words
  • Expecting concatenated matches
  • Confusing \w with digits only
4. The following MATLAB code is intended to replace all digits in str with '#' but does not work as expected:
str = 'Room 101';
newStr = regexprep(str, '\d', '#');
disp(newStr);
What is the error and how to fix it?
medium
A. Pattern should be '\\d+' to replace all digits at once
B. No error; code works correctly
C. Pattern should be '\\D' to match digits
D. Use regexp instead of regexprep

Solution

  1. Step 1: Analyze the regexprep usage

    The pattern '\\d' matches any single digit, and regexprep replaces all occurrences by default.
  2. Step 2: Check the output

    Replacing each digit with '#' in 'Room 101' results in 'Room ###', which is expected.
  3. Final Answer:

    No error; code works correctly -> Option B
  4. Quick Check:

    regexprep replaces all matches by default [OK]
Hint: regexprep replaces all matches even with single-digit pattern [OK]
Common Mistakes:
  • Thinking \d replaces only one digit total
  • Using \D which matches non-digits
  • Confusing regexp with regexprep
5. You have a cell array of strings: {'abc123', 'def456', 'ghi789'}. How do you extract only the numeric parts from each string using MATLAB regular expressions?
hard
A. Use regexp(cellArray, '\\d+', 'match')
B. Use regexp(cellArray, '\\w+', 'match')
C. Use regexprep(cellArray, '\\D', '')
D. Use regexprep(cellArray, '\\d+', '')

Solution

  1. Step 1: Understand the goal

    We want to keep only digits, removing all non-digit characters.
  2. Step 2: Choose the correct function and pattern

    regexprep replaces patterns. Using \\D matches non-digits, so replacing them with empty string keeps only digits.
  3. Final Answer:

    Use regexprep(cellArray, '\\D', '') -> Option C
  4. Quick Check:

    Remove non-digits with \D pattern [OK]
Hint: Replace non-digits (\D) with empty string to keep digits [OK]
Common Mistakes:
  • Using regexp with 'match' returns cell arrays, not strings
  • Replacing digits instead of non-digits
  • Using \w+ which matches letters and digits
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