感谢您对此问题的快速关注!非常感谢,感谢所有评论或提供见解的人!
嘿伙计我从我的标识符中得到一个匹配的问题
我有一个像这样的字符串{/describe:foo}
我正在尝试
匹配{/describe:}
以返回foo
,但是我没有正确使用正则表达式
有人心里指出我做错了什么?这是我的比赛。
$regexp = '/\{describe:(.*?)\}/i';
$query = '{/describe:foo}';
preg_match($regexp, $query, $match);
print_r($match); // (bool) false
背景 我希望这可以帮助别人,这样做的一个很好的理由就是创造可替代的 控制字符串中可以解释和替换的单词,这是一个例子 将在控制字上运行描述符的RESTful海报。
if (preg_match('/\{describe:(.*?)\}/i', $_POST['query'], $match))
{
// Describe Salesforce Object from internal POST tool
print_r($SforceConnection->describeSObjects($match[1]));
exit;
}
答案 0 :(得分:3)
你在正则表达式中缺少正斜杠:
$regexp = '/\{\/describe:(.*?)\}/i';
或:
$regexp = '#\{/describe:(.*?)\}#i';
答案 1 :(得分:3)
$regexp = '/\{\/describe\:(.*?)\}/i';
$query = '{/describe:foo}';
preg_match($regexp, $query, $match);
print_r($match); // Array ( [0] => {/describe:foo} [1] => foo )
答案 2 :(得分:2)
$regexp = '#{/describe:([^}]+)}#i';
$query = '{/describe:foo}';
preg_match($regexp, $query, $match);
print_r($match);
答案 3 :(得分:1)
用最简单的术语表示你可以使用:(?<=\/describe:).*(?=})
答案 4 :(得分:1)
尝试(/
在描述之前看起来像失踪):
$regexp = '/\{/describe:(.*?)\}/i'