我需要一个php正则表达式解决方案来捕获某些标签及其内容。
我找到了这个:
~<tag>(.*?)</tag>~isg
哪个内容可以包含<tag>
内的所有内容,但我还需要它来捕获<tag>
和</tag>
我真的很擅长正则表达式,只是无法理解它,被卡在regex101.com上试图找到过去一小时的解决方案,但没有运气Lol
我需要的解决方案是,如果搜索文本是:
<tag>Hey1</tag> Blah Blah <tag>Hey2</tag>
我需要捕获:
<tag>Hey1</tag>
<tag>Hey2</tag>
答案 0 :(得分:1)
<div style="height:100vh">
<section style="height:100vh">
Welcome...red div below should fill entire container
<section style="display:flex; flex-direction: column; background:red; height: auto">
<header>
Red Header Here...
</header>
<div>
Red Body here...
</div>
<footer>
Red Footer here...
</footer>
</section>
Random stuff below should still be displayed
</section>
</div>
答案 1 :(得分:1)
这是正则表达式和解析器的答案......
分析器:
$html = '<tag>Hey1</tag> Blah Blah <tag>Hey2</tag>';
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html);
libxml_use_internal_errors(false);
$tag = 'tag';
$tags = $doc->getElementsByTagName($tag);
foreach ($tags as $foundtag) {
echo "<$tag>" . $foundtag->nodeValue . "</$tag>";
}
解析器输出:
<tag>Hey1</tag><tag>Hey2</tag>
正则表达式:
preg_match_all('~(<tag>.*?</tag>)~is', $html, $matches);
print_r($matches[1]);
正则表达式输出:
Array
(
[0] => <tag>Hey1</tag>
[1] => <tag>Hey2</tag>
)
移动()
告诉正则表达式要捕获的内容。那是capture group。