public static function match($scenario1, $scenario2)
{
$match1 = $match2 = [];
if (preg_match_all('/([^\\}{]*)\\{([^\\{\\}]+)\\}/', $scenario1, $match1, PREG_SET_ORDER) && preg_match_all('/([^\\}{]*)\\{([^\\{\\}]+)\\}/', $scenario2, $match2, PREG_SET_ORDER)) {
if (count($match1) != count($match2)) {
return false;
}
for ($i = 0; $i < count($match1); $i++) {
if (str_replace(' ', '', $match1[$i][1]) != str_replace(' ', '', $match2[$i][1])) {
return false;
}
if ($match1[$i][2] != $match2[$i][2] && $match1[$i][2] != '*' && $match2[$i][2] != '*') {
return false;
}
}
} else {
return false;
}
return true;
}