Bird
Raised Fist0
PHPprogramming~10 mins

Character classes and quantifiers in PHP - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to match any digit character using a regular expression.

PHP
<?php
$pattern = '/[1]/';
$string = 'My number is 1234';
if (preg_match($pattern, $string)) {
    echo 'Digit found';
} else {
    echo 'No digit found';
}
?>
Drag options to blanks, or click blank then click option'
A\d
B\w
C\s
D\D
Attempts:
3 left
💡 Hint
Common Mistakes
Using \w which matches letters and digits, not only digits.
Using \s which matches whitespace characters.
2fill in blank
medium

Complete the code to match exactly three lowercase letters in a row.

PHP
<?php
$pattern = '/[a-z][1]/';
$string = 'abc def';
if (preg_match($pattern, $string)) {
    echo 'Match found';
} else {
    echo 'No match';
}
?>
Drag options to blanks, or click blank then click option'
A{3}
B{2,4}
C*
D+
Attempts:
3 left
💡 Hint
Common Mistakes
Using + which matches one or more, not exactly three.
Using * which matches zero or more.
3fill in blank
hard

Fix the error in the pattern to match one or more whitespace characters.

PHP
<?php
$pattern = '/\s[1]/';
$string = "Hello   World";
if (preg_match($pattern, $string)) {
    echo 'Whitespace found';
} else {
    echo 'No whitespace';
}
?>
Drag options to blanks, or click blank then click option'
A*
B+
C?
D{1,}
Attempts:
3 left
💡 Hint
Common Mistakes
Using ? which means zero or one occurrence.
Using * which means zero or more, but the question asks for one or more.
4fill in blank
hard

Fill both blanks to create a pattern that matches a string starting with one or more digits followed by exactly two letters.

PHP
<?php
$pattern = '/^[1][a-z][2]$/';
$string = '123ab';
if (preg_match($pattern, $string)) {
    echo 'Pattern matches';
} else {
    echo 'No match';
}
?>
Drag options to blanks, or click blank then click option'
A\d+
B[a-z]
C{2}
D[0-9]
Attempts:
3 left
💡 Hint
Common Mistakes
Using [0-9] without quantifier for digits.
Not specifying exact two letters with {2}.
5fill in blank
hard

Fill all three blanks to create a pattern that matches a string with exactly three uppercase letters, followed by one or more digits, and ending with zero or more whitespace characters.

PHP
<?php
$pattern = '/^[1][2][3]$/';
$string = 'ABC123   ';
if (preg_match($pattern, $string)) {
    echo 'Full match';
} else {
    echo 'No full match';
}
?>
Drag options to blanks, or click blank then click option'
A[A-Z]{3}
B\d+
C\s*
D[a-z]{3}
Attempts:
3 left
💡 Hint
Common Mistakes
Using lowercase letters instead of uppercase.
Using wrong quantifiers for digits or whitespace.

Practice

(1/5)
1. Which character class in PHP regex matches any digit from 0 to 9?
/[?]/
easy
A. \\D
B. \\w
C. \\s
D. \\d

Solution

  1. Step 1: Understand character classes

    In PHP regex, \\d matches any digit (0-9), \\w matches word characters, \\s matches whitespace, and \\D matches non-digits.
  2. Step 2: Identify the digit matcher

    The class that matches digits is \\d.
  3. Final Answer:

    \\d -> Option D
  4. Quick Check:

    Digits = \\d [OK]
Hint: Remember: \d = digit, \w = word, \s = space [OK]
Common Mistakes:
  • Confusing \d with \w
  • Using \D to match digits
  • Mixing up \s with digit class
2. Which of the following is the correct syntax to match exactly three lowercase letters using PHP regex?
easy
A. /[a-z]{3}/
B. /[a-z]{,3}/
C. /[a-z]{3,}/
D. /[a-z]{3,5}/

Solution

  1. Step 1: Understand quantifiers

    Curly braces {n} specify exact count. {3} means exactly 3 times.
  2. Step 2: Match exactly three lowercase letters

    The pattern /[a-z]{3}/ matches exactly three lowercase letters.
  3. Final Answer:

    /[a-z]{3}/ -> Option A
  4. Quick Check:

    Exact 3 lowercase letters = /[a-z]{3}/ [OK]
Hint: Use {n} for exact count in regex quantifiers [OK]
Common Mistakes:
  • Using {,3} which is invalid syntax
  • Using {3,} which means 3 or more
  • Using {3,5} which means 3 to 5 times
3. What will be the output of this PHP code?
$pattern = '/\d{2,4}/';
$string = 'Year 2023 and 99 problems';
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);
medium
A. ["20", "23", "99"]
B. ["2023", "99"]
C. ["202", "3", "99"]
D. ["2", "0", "2", "3", "9", "9"]

Solution

  1. Step 1: Understand the regex pattern

    The pattern /\d{2,4}/ matches sequences of digits between 2 and 4 digits long.
  2. Step 2: Apply pattern to string

    In 'Year 2023 and 99 problems', '2023' (4 digits) and '99' (2 digits) match. Smaller digit groups like '2' or '3' alone do not match.
  3. Final Answer:

    ["2023", "99"] -> Option B
  4. Quick Check:

    Digits 2-4 long = ["2023", "99"] [OK]
Hint: Quantifier {2,4} matches digit groups length 2 to 4 [OK]
Common Mistakes:
  • Splitting digits into smaller groups
  • Ignoring quantifier range
  • Assuming single digits match
4. Identify the error in this PHP regex pattern:
$pattern = '/[a-z]{2,1}/';
medium
A. Quantifier range is invalid; min cannot be greater than max
B. Character class brackets are missing
C. Pattern should use double quotes instead of single quotes
D. No error; pattern is valid

Solution

  1. Step 1: Analyze quantifier syntax

    The quantifier {2,1} means minimum 2 and maximum 1 repetitions, which is invalid because min > max.
  2. Step 2: Confirm error type

    Regex quantifiers must have min ≤ max. This causes a syntax error.
  3. Final Answer:

    Quantifier range is invalid; min cannot be greater than max -> Option A
  4. Quick Check:

    Min > max in {2,1} is invalid [OK]
Hint: Quantifier {min,max} must have min ≤ max [OK]
Common Mistakes:
  • Swapping min and max values
  • Ignoring quantifier syntax rules
  • Assuming pattern is valid without checking quantifiers
5. You want to match a string that contains exactly 3 to 5 uppercase letters followed by 2 digits in PHP regex. Which pattern is correct?
hard
A. /^[A-Z]{3,5}\d{1,2}$/
B. /^[A-Z]{2,3}\d{5}$/
C. /^[A-Z]{3,5}\d{2}$/
D. /^[A-Z]{3,5}\d{3}$/

Solution

  1. Step 1: Understand the requirements

    The string must start (^) with 3 to 5 uppercase letters [A-Z]{3,5} and end ($) with exactly 2 digits \d{2}.
  2. Step 2: Match pattern to options

    /^[A-Z]{3,5}\d{2}$/ matches exactly 3-5 uppercase letters followed by exactly 2 digits, anchored start and end.
  3. Final Answer:

    /^[A-Z]{3,5}\d{2}$/ -> Option C
  4. Quick Check:

    3-5 uppercase + 2 digits = /^[A-Z]{3,5}\d{2}$/ [OK]
Hint: Use anchors ^ and $ to match whole string exactly [OK]
Common Mistakes:
  • Mixing digit counts in quantifiers
  • Omitting anchors causing partial matches
  • Using wrong quantifier ranges
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