我遇到了php中字符串解析的问题。我正在尝试创建自己的模板解析器(为了我的学习目的)。我已决定将网址设置为以下格式{url:abc/def}
,因此会显示为http://www.domain.com/abc/def。我尝试过使用str_replace但是在这种情况下它不起作用,因为“:”之后的值可能是任何东西。爆炸字符串也不会起作用,因为“:”也可以出现在html文件的文本中。我认为这只能通过正则表达式完成,所以建议我一些好的正则表达式也让我知道是否可以通过任何其他方法实现。
其他需要注意的事项。
答案 0 :(得分:4)
用于学习目的:
preg_replace('/\{url:([^\}]*)\}/', $base_url.'$1', $string);
正则表达式的解释
\{url:
< - 找到此文[^\}]*
< - 这意味着'任何字符,但}
出现0次或更多次([^\}]*)
< - 将它放在()
之间我们以后可以参考它(参见'$1'
)\}
< - 结束}
只要你在学习:看一看 http://www.regular-expressions.info/ 有关正则表达式的更多信息。他们真的非常棒:D