我正在努力将值添加到模板中并遇到问题。
这是我的模板
TIME : |time,hour|:|time,min|:|time,sec| <br />
ADDING BLOCK 'TIME' ...<br />
<i>|template,tibcoreapps,main|</i><br />
字符|
用于分隔数据块。当我尝试使用|template,tibcoreapps,main|
阻止preg_match
时,它无法使用我的代码:
preg_match("/(.*)|template,tibcoreapps,(.*)|(.*)/",$templateContent,$result);
var_dump($result);
结果是
array (size=2)
0 => string 'TIME : |time,hour|:|time,min|:|time,sec| <br /> (length=48)
1 => string 'TIME : |time,hour|:|time,min|:|time,sec| <br /> (length=48)
我尝试在互联网上搜索,但无法准确了解preg_match
的工作原理。我曾经认为如果我指定$result
(第三个参数),它将获得所有匹配的字符串。但即使我尝试获取以template,tibcoreapps,
开头的块,它也会返回其他块或它获得的第一个块。请解释preg_match
的工作方式。
感谢您的帮助。
答案 0 :(得分:1)
由于|
在正则表达式中具有特殊含义,因此您需要将其转义。
preg_match("/(.*)\|template,tibcoreapps,(.*)\|(.*)/",$templateContent,$result);
如果您不熟悉正则表达式,则应阅读regular-expressions.info上的教程。