I want ot get a match from my identifier.
I have a string like this coming in {/describe:foo} where I am trying to
match {/describe:} to return foo, but am not getting the regex right, would
someone mind pointing out what I did wrong? here’s my match.
$regexp = '/{describe:(.*?)}/i';
$query = '{/describe:foo}';
preg_match($regexp, $query, $match);
print_r($match); // (bool) false
Background I hope this can help others, a good reason to do this is to create replaceable control words in a string that can be interpreted and replaced, here’s an example of a RESTful poster that will run a descriptor on a control word.
if (preg_match('/{describe:(.*?)}/i', $_POST['query'], $match))
{
// Describe Salesforce Object from internal POST tool
print_r($SforceConnection->describeSObjects($match[1]));
exit;
}
Advertisement
Answer
You are missing the forward slash in your regexp:
$regexp = '/{/describe:(.*?)}/i';
or:
$regexp = '#{/describe:(.*?)}#i';