1

我想使用正则表达式验证 html,为此我需要一个 div 选择的正则表达式。

我用这个

      (<div.*?>.*?<\/div>)

但问题就在那里,这种文本也有效:

 <div>some this <div> some another text</div>

这是无效的

我需要那种只给我最后一部分的表达方式

<div> some another text</div>

请给我建议

4

1 回答 1

2

是的,在大多数情况下,用正则表达式解析 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);
于 2013-04-26T20:39:43.080 回答