Req #55179 [Opn->Sus]: Offer preg_match with array-support for pattern
Edit report at https://bugs.php.net/bug.php?id=55179&edit=1
ID: 55179
Updated by: cmb@php.net
Reported by: neufeind@php.net
Summary: Offer preg_match with array-support for pattern
-Status: Open
+Status: Suspended
Type: Feature/Change Request
Package: PCRE related
PHP Version: 5.3.6
Block user comment: N
Private report: N
New Comment:
Well, it seems to me that you basically could pass
implode('|', $patterns)
to preg_match(); that would need slightly modified $patterns, and
preg_quote() for the general case, though. And of course, the
given example could use a single regex with a character class.
In my opinion, the feature as presented is not very useful, and
under-specified (for instance, how to detect which pattern
matched), and as such needs discussion on the internals mailing
list[1]. Please feel free to propose the feature there. For the
time being, I'm suspending this ticket.
[1] <https://www.php.net/mailing-lists.php#internals>
Previous Comments:
------------------------------------------------------------------------
[2011-07-11 07:38:32] neufeind@php.net
Description:
------------
Maybe the existing preg_match could allow for an array to be given as $pattern. Or if not a
preg_match_array() might be an alternative.
Idea is to check a string against a list of pattern. First matched pattern would return.
Test script:
---------------
<?php
$patterns = array(
'/\.link1$/',
'/\.link2$/',
'/\.link3$/',
'/\.link4$/',
);
$subject = "field.link2";
if(preg_match($patterns, $subject)) {
// ...
}
Expected result:
----------------
preg_match should find the first pattern that matches (if any).
Actual result:
--------------
No array-support for $pattern yet.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=55179&edit=1
Thread (3 messages)