我有这个功能:
function getTextBetweenTags($string, $tagname) {
$pattern = "/<$tagname ?.*>(.*)<\/$tagname>/";
preg_match($pattern, $string, $matches);
if(count($matches) > 0){
return $matches[1];
}
}
传递span
作为参数$tagname
,可以匹配任何span标记。我希望传递a|span
可以让我选择a
或span
个标签。但它并不匹配任何东西。为什么呢?
答案 0 :(得分:0)
尝试在括号中进行分组(正如我们在评论中所说):
function getTextBetweenTags($string, $tagname) {
$pattern = "/<($tagname)?.*>(.*)<\/($tagname)>/";
preg_match($pattern, $string, $matches);
if(count($matches) > 0){
return $matches[1];
}
}
如果您通过$string = "a|span"
,则会获得$pattern = "/<(a|span)>";