PHP: preg_match Give Names to the Matches
Join the DZone community and get the full member experience.
Join For FreeSo Called – Subpatterns
In PHP 5.2.2+ you can name the sub patterns returned from preg_match with a specific syntax.
Named subpatterns now accept the syntax (?<name>) and (?’name’) as well as (?P<name>). Previous versions accepted only (?P<name>)
This is extremely helpful, when dealing with long patterns. As you may know you can simply use the “old school” way and to call the matches by their number based index:
$haystack = '01 Jan 1970';
$pattern = '/(\d{1,2})\ (Jan|Feb)\ (19\d\d)/';
preg_match($pattern, $haystack, $matches);
print_r($matches);
Although it may look difficult to maintain, now you can simply name the sub patterns of preg_match and to call them with their associative array keys. This is more clear when writing code and it’s definitely more maintainable.
$haystack = '01 Jan 1970';
$pattern = '/(?<day>\d{1,2})\ (?<month>Jan|Feb)\ (?<year>19\d\d)/';
preg_match($pattern, $haystack, $matches);
print_r($matches);
// now there's $matches['day'], $matches['month'] ...
Published at DZone with permission of Stoimen Popov, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Trending
-
What to Pay Attention to as Automation Upends the Developer Experience
-
RAML vs. OAS: Which Is the Best API Specification for Your Project?
-
Five Java Books Beginners and Professionals Should Read
-
How To Use Geo-Partitioning to Comply With Data Regulations and Deliver Low Latency Globally
Comments