是否可以在字符串中查找其位置的所有标签?
例如以下文字:
#$text = file_get_contents($file); # for the simplicity - see other line:
$text = "<tag> sometext <tag2> more text </tag2>";
在结果中我希望得到$text
的所有标签及其位置:
- [0] name = <tag>, position = 1
- [1] name = <tag2>, position = X
- [2] name = </tag2>, position = X
据我了解 - 应使用正则表达式。如果它有帮助 - 我知道所有标签的名称。为了简单起见,他们是:
<tag>, <tag1>, <tag2>, <tag3>, </tag>, </tag1>, </tag2>, </tag3>
获得理想结果的最佳方法是什么?
答案 0 :(得分:1)
您可以使用以下正则表达式:
preg_match_all('@(\</?[a-z0-9]+\>)@', $text, $m);
$tags = array();
foreach ($m[1] as $i => $match) {
echo "name = " . $m[1][$i] . ", position = " . ($i+1) . "\n";
}