Bird
Raised Fist0
PHPprogramming~20 mins

Preg_split for splitting in PHP - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Preg_split Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of preg_split with simple delimiter
What is the output of the following PHP code?
PHP
<?php
$input = "apple,banana,orange";
$result = preg_split('/,/', $input);
print_r($result);
?>
AArray ( [0] => apple,banana,orange )
BArray ( [0] => apple [1] => banana [2] => orange [3] => )
CArray ( [0] => apple [1] => banana,orange )
DArray ( [0] => apple [1] => banana [2] => orange )
Attempts:
2 left
💡 Hint
preg_split splits the string where the pattern matches, returning all parts as array elements.
❓ Predict Output
intermediate
2:00remaining
preg_split with limit parameter
What is the output of this PHP code?
PHP
<?php
$input = "one,two,three,four";
$result = preg_split('/,/', $input, 3);
print_r($result);
?>
AArray ( [0] => one [1] => two [2] => three,four )
BArray ( [0] => one [1] => two [2] => three [3] => four )
CArray ( [0] => one,two,three [1] => four )
DArray ( [0] => one [1] => two [2] => three [3] => four [4] => )
Attempts:
2 left
💡 Hint
The limit parameter controls how many pieces the string is split into.
❓ Predict Output
advanced
2:00remaining
preg_split with PREG_SPLIT_NO_EMPTY flag
What is the output of this PHP code?
PHP
<?php
$input = ",apple,,banana,orange,";
$result = preg_split('/,/', $input, -1, PREG_SPLIT_NO_EMPTY);
print_r($result);
?>
AArray ( [0] => [1] => apple [2] => [3] => banana [4] => orange [5] => )
BArray ( [0] => apple [1] => banana [2] => orange )
CArray ( [0] => apple [1] => [2] => banana [3] => orange )
DArray ( [0] => apple,banana,orange )
Attempts:
2 left
💡 Hint
The PREG_SPLIT_NO_EMPTY flag removes empty strings from the result.
❓ Predict Output
advanced
2:00remaining
preg_split with capturing parentheses
What is the output of this PHP code?
PHP
<?php
$input = "red1green2blue3";
$result = preg_split('/(\d)/', $input, -1, PREG_SPLIT_DELIM_CAPTURE);
print_r($result);
?>
AArray ( [0] => red [1] => 1 [2] => green [3] => 2 [4] => blue [5] => 3 )
BArray ( [0] => red1green2blue3 )
CArray ( [0] => red [1] => green [2] => blue )
DArray ( [0] => red [1] => 1green2blue3 )
Attempts:
2 left
💡 Hint
PREG_SPLIT_DELIM_CAPTURE includes the parts matched by parentheses in the output.
🧠 Conceptual
expert
3:00remaining
Understanding preg_split behavior with complex regex
Given the code below, how many elements will the resulting array have?
PHP
<?php
$input = "a1b2c3d4";
$result = preg_split('/(?<=\d)/', $input);
echo count($result);
?>
A7
B8
C4
D1
Attempts:
2 left
💡 Hint
The regex uses a lookbehind to split after each digit.

Practice

(1/5)
1. What does the PHP function preg_split do?
easy
A. Counts the number of words in a string.
B. Joins array elements into a string.
C. Replaces parts of a string matching a pattern.
D. Splits a string into parts using a regular expression pattern.

Solution

  1. Step 1: Understand the function purpose

    preg_split is designed to split strings based on patterns, not fixed characters.
  2. Step 2: Compare options with function behavior

    Only Splits a string into parts using a regular expression pattern. describes splitting using a regular expression pattern, which matches preg_split functionality.
  3. Final Answer:

    Splits a string into parts using a regular expression pattern. -> Option D
  4. Quick Check:

    preg_split splits string by regex pattern = A [OK]
Hint: Remember: preg_split uses regex to split strings [OK]
Common Mistakes:
  • Confusing preg_split with implode or join functions
  • Thinking preg_split replaces text instead of splitting
  • Assuming preg_split counts words
2. Which of the following is the correct syntax to split a string by commas using preg_split?
easy
A. preg_split('/,/', $string);
B. preg_split(',', $string);
C. preg_split($string, '/,/');
D. preg_split($string, ',');

Solution

  1. Step 1: Identify correct parameter order

    The first parameter of preg_split is the regex pattern as a string, the second is the input string.
  2. Step 2: Check regex pattern format

    The pattern must be enclosed in delimiters like slashes /, /. preg_split('/,/', $string); uses this correctly.
  3. Final Answer:

    preg_split('/,/', $string); -> Option A
  4. Quick Check:

    Pattern first with slashes, then string = B [OK]
Hint: Pattern goes first with slashes, then the string [OK]
Common Mistakes:
  • Omitting regex delimiters like slashes
  • Swapping the order of parameters
  • Using plain string instead of regex pattern
3. What is the output of the following PHP code?
$text = "apple,banana;orange|grape";
$result = preg_split('/[,;|]/', $text);
print_r($result);
medium
A. ["apple,banana;orange|grape"]
B. ["apple", "banana;orange|grape"]
C. ["apple", "banana", "orange", "grape"]
D. ["apple", "banana", "orange|grape"]

Solution

  1. Step 1: Understand the regex pattern

    The pattern /[,;|]/ matches any comma, semicolon, or pipe character as separators.
  2. Step 2: Split the string by these separators

    The string splits at each comma, semicolon, and pipe, resulting in four parts: "apple", "banana", "orange", "grape".
  3. Final Answer:

    ["apple", "banana", "orange", "grape"] -> Option C
  4. Quick Check:

    Split by , ; | = ["apple", "banana", "orange", "grape"] [OK]
Hint: Regex with multiple separators splits into all parts [OK]
Common Mistakes:
  • Not recognizing all separators in regex
  • Expecting only comma to split
  • Confusing output format with string instead of array
4. The following code is intended to split a string by spaces, but it causes an error. What is the problem?
$str = "one two three";
$parts = preg_split(' ', $str);
print_r($parts);
medium
A. The print_r function is used incorrectly.
B. The pattern is missing regex delimiters.
C. preg_split cannot split by spaces.
D. The string variable is empty.

Solution

  1. Step 1: Check the pattern parameter

    The pattern passed is a plain space character without regex delimiters, which is invalid syntax for preg_split.
  2. Step 2: Correct pattern format

    Regex patterns must be enclosed in delimiters like slashes, e.g., '/ /' to match a space.
  3. Final Answer:

    The pattern is missing regex delimiters. -> Option B
  4. Quick Check:

    Regex pattern needs delimiters like slashes [OK]
Hint: Always wrap regex pattern in delimiters like slashes [OK]
Common Mistakes:
  • Using plain string without delimiters as pattern
  • Assuming preg_split works like explode for spaces
  • Blaming print_r for output issues
5. You want to split a string by any number of spaces or commas, but ignore empty parts in the result. Which preg_split call achieves this?
hard
A. preg_split('/[ ,]+/', $string, -1, PREG_SPLIT_NO_EMPTY);
B. preg_split('/[ ,]/', $string);
C. preg_split('/[ ,]+/', $string);
D. preg_split('/[ ,]+/', $string, 0);

Solution

  1. Step 1: Understand the pattern and flags

    The pattern /[ ,]+/ matches one or more spaces or commas, so it splits on any group of these separators.
  2. Step 2: Use flag to remove empty parts

    The flag PREG_SPLIT_NO_EMPTY tells preg_split to exclude empty strings from the result array.
  3. Step 3: Check other options

    preg_split('/[ ,]/', $string); splits on single separators but may leave empty parts. preg_split('/[ ,]+/', $string); does not remove empty parts. preg_split('/[ ,]+/', $string, 0); uses 0 as limit which is invalid.
  4. Final Answer:

    preg_split('/[ ,]+/', $string, -1, PREG_SPLIT_NO_EMPTY); -> Option A
  5. Quick Check:

    Use + for multiple separators and NO_EMPTY flag [OK]
Hint: Use + in pattern and PREG_SPLIT_NO_EMPTY flag [OK]
Common Mistakes:
  • Not using + to match multiple separators
  • Forgetting PREG_SPLIT_NO_EMPTY to remove blanks
  • Using invalid limit parameter
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