所以我可以说我写了一篇包含许多标签的文章,例如[code]this is a code[/code]
,我会知道文章中有多少code
个标签,里面的文字是什么。
我尝试了preg_matches
和preg_replaces
,但到目前为止还没有任何工作。这样做的适当方法是什么?
答案 0 :(得分:1)
$pattern = '/\[code\](.*?)\[\/code\]/s';
preg_match_all($pattern, $code, $matches);
echo count($matches)."\n";
var_dump($matches);
答案 1 :(得分:0)
这应该对你有用:
/\[code\]([^]]+)\[\/code\]/
您需要使用match_all来获取所有值。 顺便说一句,必须有一些像这样的代码的缺陷:
[code]blabla [code]bleh bleh[/code][/code]
由于正则表达式无法解析多个深度级别。至少在深度未知时。
修改强>
/\[code\](.*)\[\/code\]/
也很有用,但不会捕获内部块。第一个只与内部匹配。