将字符串与多个模式匹配,并在php中返回匹配的模式

时间:2016-02-29 08:44:17

标签: php regex

我正在编写一个函数,该函数匹配一个带有精确模式的字符串,并返回匹配的模式。

$string = 'download_finalbuild_123';

现在我有一个字符串

foreach($patterns as $pattern){
   $matched_pattern = '';
   if(match_pattern($pattern,$string){
     $matched_pattern = $pattern;
     break;
   }
}
echo 'Matched pattern is ' . $matched_pattern;

我想比较这个字符串并返回匹配的模式。所以我使用了一个foreach语句

function match_pattern($first,$second){
   //Some magic here which return true if both parameters match
}

现在我想要一个函数match_pattern,如果pattern与string匹配,则返回true。

{{1}}

1 个答案:

答案 0 :(得分:0)

您需要准备一组正则表达式模式,并且需要在foreachpreg_match中使用它,如

$patterns = array(
 'pages\/[a-zA-Z]+\/[\d]+',
 'profile\/[\d]+',
 'download_[a-zA-Z]+_[\d]+'
);

$string = 'download_finalbuild_123';
$str = "";
foreach($patterns as $v){
    if(preg_match("/$v/",$string)){
        $str .= "Match string matches $v pattern";
    }
}

echo $str;

<强>输出

Match string matches download_[a-zA-Z]+_[\d]+ pattern