DO YOU NEED A CONTENT WRITER FOR YOUR BUSINESS?

Your One-Stop Solution for All Content Needs! Click here for more!
Php

Learn Regular expressions in few hours

Share

In php regular expressions are very useful for extract information from a string, files, documents etc. So we have divided the lessons into different days so that you can learn without any pressure.

Regular expressions lessons:

Lesson 1: Letters
In this tutorial we will discuss regular expressions as characters and we will write patterns to match a specific sequence of characters.

$string = “abcdefgh \n abcdef \n abc”;
$pattern = “/abcd(.*)/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => abcdefgh [1] => abcdef )

Lesson 2: Digits
Here we will introduce any digits from 0 to 9 to match specific sequence of characters. Because no one know where characters includes digits as well.

$string = “abc123xyz \n var g = 456 \n hello 123”;
$pattern = “/(.*)123(.*)/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => abc123xyz [1] => hello 123 )

Lesson 3: Character Period
dot(.) can match any single characters i.e. letter. digit, whitespace. Dot(.) can be escape by \. accordingly.

$string = “title. \n 123. \n +-. \n chess”;
$pattern = “/(.*)\.(.*)/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => title. [1] => 123. [2] => +-. )

Lesson 4: Only a, b, or c
In regular expressions there is a method where you want to match specific characters. For e.g. [abc] will match a single a, b and c.

$string = “can \n man \n ran \n fan”;
$pattern = “/[cmf]an/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => can [1] => man [2] => fan )

Lessons 5: Not a, b, nor c
Similar to above lesson if you want to exclude specific characters then you can do so by using [^abc] that match any single characters except a, b, c etc.

$string = “can \n man \n ran \n fan”;
$pattern = “/[^rm]an/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => can [1] => fan )

Lessons 6: Characters a to z / Numbers 0 to 9
You can match or exclude for a specific range of characters by using “-“. For e.g. [1-5] will match 1 to 5, [^a-c] will match any characters except a to c.

$string = “Anc \n Fob \n Ppc \n bax \n byy \n bcz”;
$pattern = “/[A-c][n-p][a-c]/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => Anc [1] => Fob [2] => Ppc )

Lessons 7: Repeat characters
How can you match if there are more than one character i.e. repetitions of characters? The solutions is using the curly braces. For e.g. a{3} will match exactly three times. a{1,4} will match not more than 4 times but not less than 1. a{2,} will match 2 or more.

$string = “helllllo \n helllo \n hello”;
$pattern = “/hel{2,4}o/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => helllo [1] => hello )

Lessons 8: Repeat zero or more
Sometime user can write the price as $10,000 and some times $10. So you do not know where to drop and where to pick up.

$string = “aaaabcc \n aabbbbc \n aacc \n defff”;
$pattern = “/aa+b*c+/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => aaaabcc [1] => aabbbbc [2] => aacc )

Lesson 9: Optional
Optionally means you want to match either zero or one of the preceding character. For e.g. xy?z will match either xyz or xz because “y” treated as optional.

$string = “1 hand player \n 2 hand player \n 3 hand player”;
$pattern = “/\w hand? player/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => 1 hand player [1] => 2 hand player [2] => 3 hand player )

Lesson 10: Whitespace
Whitespace defines as “space”, “tab”, “\t”, “\r”, “\n” etc. So in this case you have to deal with “\s” for any specific whitespace.

$string = “1. xyz \n 2. xyz \n 3. xyz”;
$pattern = “/\d\.\s+xyz/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => 1. xyz [1] => 2. xyz [2] => 3. xyz )

Lessons 11: Starts and ends
If you want to match from both start and end then using “^” and “$” you can achieve this.

$string = “Mission: successful \n Last Mission: unsuccessful \n Next Mission: successful upon capture of target”;
$pattern = “/^Mission: successful$/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => Mission: successful )

Lessons 12: Group capture
You can group characters using the special ( and ) (parenthesis). To capture the image file write the expression ^(IMG(\d+))\.png$.

$string = “file_a_registry_file.pdf \n file_today.pdf \n testfile.pdf.tmp”;
$pattern = “/(\w+).pdf/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => file_a_registry_file.pdf [1] => file_today.pdf [2] => testfile.pdf )

Lessons 13: Sub Group capture
You can extract multiple layers of information through regular expressions.

$string = “Hello 123 \n Hey 456 \n Hi 2015”;
$pattern = “/(\w+ (\d+))/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => Hello 123 [1] => Hey 456 [2] => Hi 2015 )

Lessons 14: More Group capture
For capture more group you can use below code.

$string = “1024X768 \n 800X600 \n 480X320”;
$pattern = “/(\d+)X(\d+)/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => 1024X768 [1] => 800X600 [2] => 480X320 )

Lessons 15: Match x or z
Particularly when you are using groups, you can use the | (OR) to mention different sets of characters.

$string = “I love toy \n I love boy \n I love joy”;
$pattern = “/I love (toy|joy)/”;
preg_match_all($pattern, $string, $matches);
print_r($matches[0]);

Output:
Array ( [0] => I love toy [1] => I love joy )

Lessons 16: Other characters
Using \w you can capture alphanumeric characters, using \D you can capture any non-digit character, using \S you can capture any non-whitespace character, and \W any non-alphanumeric character.
Everything can be achieve by “.*” pattern.

Sample Regular Expression pattern…
foo : The string “foo”
^foo : “foo” at the start of a string
foo$ : “foo” at the end of a string
^foo$ : “foo” when it is alone on a string
[abc] : a, b, or c
[a-z] : Any lowercase letter
[^A-Z] : Any character that is not a uppercase letter
(gif|jpg) : Matches either “gif” or “jpeg”
[a-z]+ : One or more lowercase letters
[0-9\.\-] : Аny number, dot, or minus sign
^[a-zA-Z0-9_]{1,}$ : Any word of at least one letter, number or _
([wx])([yz]) : wy, wz, xy, or xz
[^A-Za-z0-9] : Any symbol (not a number or a letter)
([A-Z]{3}|[0-9]{4}) : Matches three letters or four numbers

Namaste UI (Author)

Namaste UI collaborates closely with clients to develop tailored guest posting strategies that align with their unique goals and target audiences. Their commitment to delivering high-quality, niche-specific content ensures that each guest post not only meets but exceeds the expectations of both clients and the hosting platforms. Connect with us on social media for the latest updates on guest posting trends, outreach strategies, and digital marketing tips. For any types of guest posting services, contact us on info[at]namasteui.com.

Recent Posts

Edge Computing vs Cloud Computing: What’s the Difference?

Let’s face it. Tech buzzwords get thrown around a lot—especially when it comes to how…

3 days ago

How Data Intelligence Shapes the Future of Digital Innovation

In today’s digital world, the boundaries between technology, finance, and innovation are rapidly disappearing. Businesses…

6 days ago

How To Power Your Backyard Parties with A Solar Power Battery?

Backyard gatherings like BBQs, family reunions, and garden parties are an exciting way to enjoy…

7 days ago

5 Best Practices for Programmatic Advertising

Marketers are always on the lookout for more effective ways to reach their target audiences.…

7 days ago

Are We All Addicted to Stimulation? The New Face of Anxiety Disorders

Does your phone control your mind more than you control your phone? Modern life exploits…

1 week ago

What Lifestyle Changes Help Prevent BPH from Coming Back

Did you know that the prostate continues growing throughout a man's entire life, making BPH…

1 week ago