Bird
Raised Fist0
PHPprogramming~5 mins

Preg_match for pattern matching in PHP - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the preg_match function do in PHP?

preg_match checks if a string matches a specific pattern defined by a regular expression. It returns 1 if a match is found, 0 if not, and false on error.

Click to reveal answer
beginner
How do you write a basic preg_match call to check if the string "hello123" contains digits?
preg_match('/\d+/', 'hello123');

This checks if there is one or more digits anywhere in the string.

Click to reveal answer
beginner
What is the purpose of the delimiters (like /) in a preg_match pattern?

Delimiters mark the start and end of the regular expression pattern. They tell PHP where the pattern begins and ends.

Click to reveal answer
intermediate
How can you capture the matched part of a string using preg_match?

Use a third argument as an array to store matches. For example:

preg_match('/(\d+)/', 'abc123', $matches);
echo $matches[1]; // outputs '123'
Click to reveal answer
beginner
What does preg_match return if the pattern is not found in the string?

It returns 0, which means no match was found.

Click to reveal answer
What does preg_match('/abc/', 'abcdef') return?
Afalse
B0
C1
Dnull
Which symbol is commonly used as a delimiter in preg_match patterns?
AAll of the above
B#
C/
D~
How do you store the matched substring from preg_match?
ABy passing a second argument as an array
BYou cannot store matches
CBy passing a fourth argument as a string
DBy passing a third argument as an array
What does the pattern /\d+/ match?
AAny special character
BOne or more digits
CAny whitespace
DOne or more letters
If preg_match returns false, what does it mean?
AAn error occurred
BNo match found
CMatch found
DPattern is empty
Explain how to use preg_match to check if a string contains a specific word and how to get the matched word.
Think about capturing groups and the third argument.
You got /4 concepts.
    Describe the return values of preg_match and what each means.
    There are three possible return values.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the PHP function preg_match return when the pattern is found in the string?
      easy
      A. 1
      B. 0
      C. true
      D. false

      Solution

      1. Step 1: Understand preg_match return values

        The function preg_match returns 1 if the pattern matches the string.
      2. Step 2: Differentiate from no match

        If the pattern is not found, it returns 0, not true or false.
      3. Final Answer:

        1 -> Option A
      4. Quick Check:

        preg_match returns 1 if pattern found [OK]
      Hint: Remember: preg_match returns 1 for match, 0 for no match [OK]
      Common Mistakes:
      • Confusing return values with boolean true/false
      • Assuming preg_match returns the matched string
      • Thinking preg_match returns number of matches
      2. Which of the following is the correct syntax to check if the string $text contains the word "hello" using preg_match?
      easy
      A. preg_match('hello', $text);
      B. preg_match('/hello/', $text);
      C. preg_match(/hello/, $text);
      D. preg_match("/hello", $text);

      Solution

      1. Step 1: Identify correct pattern delimiters

        Patterns in preg_match must be enclosed in quotes and slashes, like '/pattern/'.
      2. Step 2: Check each option's syntax

        preg_match('/hello/', $text); uses quotes and slashes correctly. preg_match('hello', $text); misses slashes. preg_match(/hello/, $text); misses quotes. preg_match("/hello", $text); misses closing slash.
      3. Final Answer:

        preg_match('/hello/', $text); -> Option B
      4. Quick Check:

        Pattern must be in quotes with slashes [OK]
      Hint: Use quotes and slashes around pattern in preg_match [OK]
      Common Mistakes:
      • Omitting quotes around the pattern
      • Omitting slashes around the pattern
      • Using wrong quote types inconsistently
      3. What will be the output of the following PHP code?
      $text = "apple123";
      if (preg_match('/\d+/', $text)) {
      echo "Digits found";
      } else {
      echo "No digits";
      }
      medium
      A. Syntax error
      B. No digits
      C. Digits found
      D. Empty output

      Solution

      1. Step 1: Understand the pattern '/\d+/'

        The pattern \d+ matches one or more digits in the string.
      2. Step 2: Check if $text contains digits

        The string "apple123" contains digits "123", so preg_match returns 1 and the if condition is true.
      3. Final Answer:

        Digits found -> Option C
      4. Quick Check:

        Pattern \d+ matches digits, output is 'Digits found' [OK]
      Hint: \d+ matches digits; check string for numbers [OK]
      Common Mistakes:
      • Not escaping backslash properly in pattern
      • Assuming preg_match returns matched string
      • Confusing preg_match return with boolean true/false
      4. The following code is intended to check if a string contains only letters. What is wrong with it?
      $str = "Hello123";
      if (preg_match('/^[a-zA-Z]+$/', $str)) {
      echo "Only letters";
      } else {
      echo "Contains other characters";
      }
      medium
      A. The pattern is correct but the string contains digits
      B. Missing delimiters around the pattern
      C. The pattern should use \w instead of [a-zA-Z]
      D. preg_match should be preg_match_all

      Solution

      1. Step 1: Analyze the pattern and string

        The pattern '/^[a-zA-Z]+$/' matches strings with only letters from start to end. The string "Hello123" contains digits, so it does not match.
      2. Step 2: Identify the actual problem

        The pattern is correct, but the string has digits, so the else branch runs.
      3. Final Answer:

        The pattern is correct but the string contains digits -> Option A
      4. Quick Check:

        Pattern matches only letters; digits cause no match [OK]
      Hint: Check if string matches pattern exactly, not just pattern syntax [OK]
      Common Mistakes:
      • Thinking pattern is wrong when string is the issue
      • Confusing preg_match with preg_match_all
      • Removing anchors ^ and $ incorrectly
      5. You want to check if a string contains a valid email address using preg_match. Which pattern correctly matches a simple email format like 'user@example.com'?
      hard
      A. '/^[a-z]+@[a-z]+\.[a-z]{2,3}$/'
      B. '/^[\d]+@[\d]+\.[\d]{2,4}$/'
      C. '/\w+@\w+\.com/'
      D. '/^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$/'

      Solution

      1. Step 1: Understand email pattern requirements

        A simple email has letters, digits, dots, or dashes before and after '@', then a dot and 2-6 letter domain.
      2. Step 2: Evaluate each pattern

        '/^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$/' matches letters, digits, dots, dashes before and after '@', and domain with 2-6 letters. '/^[a-z]+@[a-z]+\.[a-z]{2,3}$/' is too restrictive (only lowercase letters, domain 2-3 letters). '/\w+@\w+\.com/' matches only '.com' domains and misses anchors. '/^[\d]+@[\d]+\.[\d]{2,4}$/' matches digits only, which is invalid for emails.
      3. Final Answer:

        '/^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$/' -> Option D
      4. Quick Check:

        '/^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$/' matches common email format correctly [OK]
      Hint: Use \w, dots, dashes, and domain length for email pattern [OK]
      Common Mistakes:
      • Not using anchors ^ and $ to match whole string
      • Restricting domain or username too much
      • Ignoring dots and dashes in username or domain
      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