<div class="large-notice"><h2>yyyy</h2><p>ABCD</p><form>zzzz</form></div>
使用它preg_match
,我可以提取以下之间的所有文本<div>....</div>
:
preg_match('#<div class="large-notice">(.*?)</div>#s', $one, $n);
<p>
但我只想要和之间的文本</p>
,即ABCD
。
有多种方法可以做到这一点,很大程度上取决于我们是只处理这一个特定的标记,还是处理有一些波动的整个文档。
无论如何,以下任何一项都应该有效:
preg_match('#<div class="large-notice"><h2>.*?</h2><p>(.*?)</p><form>.*?</form></div>#s', $one, $n);
preg_match('#<p>(.*?)</p>#s', $one, $n);
在我看来,前面的答案更好,但您也可以使用 strpos 找到您要查找的字符串的起始位置和结束位置并将其替换掉......干杯