When dealing with those pesky regular expressions trying to get our matches by their index, making your code that little less readable. When someone comes to your code we don’t want them requiring a second look to try to understand your pattern. With named matches in your regex, you can give matches a name to describe exactly what you’re matching.
A good example of this is matching parameters in URLs. You can give the variables in your URL a name making your code a bit more readable. In the URL
1 | /category/1/post/5 |
we want to get the category id and the post id. A simple match would be to simply match the digits.
1 | ^\\/category\\/(\\d+)\\/post\\/(\\d+)$ |
This would then give you code something like:
1
2
3
4
5
6 $input_line = '/category/1/post/5'
preg_match('/^\\/category\\/(\\d+)\\/post\\/(\\d+)$/', $input_line, $output_array);
if ($output_array[1] === 1 && $output_array[2] === 5) {
// Do some magic
}
We can give our matches a name by adding a
1 | ?<name> |
to your pattern. So your new pattern will look like:
1 ^\\/category\\/(?<category_id>\\d+)\\/post\\/(?<post_id>\\d+)$
Now we can refactor our code to make it that bit more readable:
1
2
3
4
5
6 $input_line = '/category/1/post/5'
preg_match('^\\/category\\/(?<category_id>\\d+)\\/post\\/(?<post_id>\\d+)$', $input_line, $output_array);
if ($output_array['category_id'] === 1 && $output_array['post_id'] === 5) {
// Do some magic
}
Links to php live regex
More reads
Why is ChatGPT and generative AI okay for industry but not for education?
Universal Analytics to GA4 Migration
As an agency we have decided to move all of our sites over to the new Google Analytics in one hit. This post explains how and why
Perennial Blog Posting Strategy
A blogging strategy that will save you time, increase your SEO health, make that content calendar easy to deal with and help with your sanity.