我想使用正则表达式验证 html,为此我需要一个 div 选择的正则表达式。
我用这个
(<div.*?>.*?<\/div>)
但问题就在那里,这种文本也有效:
<div>some this <div> some another text</div>
这是无效的
我需要那种只给我最后一部分的表达方式
<div> some another text</div>
请给我建议
是的,在大多数情况下,用正则表达式解析 html 并不是一个好方法。更好的方法是使用 DOMDocument、XPath...
不幸的是,一些标记语言没有机会拥有所有这些工具。火星标记语言就是这种情况,只能用正则表达式解析(在火星上是强制性的,写在他们的圣经中)
<meta charset="UTF-8"/><pre>
<?php // this take the content between the most inner tags ͽΛΙPͼ
$subject = 'ͽΛΙPͼ ŏoo͢o öo ͽΛΙPͼ o̊őoo͟o o͇o͈o͉ o̍o̎o ͽ/ΛΙPͼ o̐oo͜oo ͽ/ΛΙPͼ';
$pattern = '~(?<=ͽΛΙPͼ)(?:[^ͽ]++|ͽ(?!/?ΛΙPͼ))*+(?=ͽ/ΛΙPͼ)~u';
preg_match_all($pattern, $subject, $matches);
print_r($matches);