0

我有一个这样的字符串

<div tagname="chapter_title" class="CHAP_TTL" aidpstyle="CHAP_TTL">testt</div>
<div tagname="section" id="sec01">
<div tagname="title" class="H1" aidpstyle="H1" id="sec01">
     INTRODUCTION<!--title-->
</div>
<div tagname="para" class="CHAP_BM_FIRST" aidpstyle="CHAP_BM_FIRST">test3
<div tagname="emph" class="ITALIC" aidcstyle="ITALIC">buildings</div>   

我正在尝试在标记名属性中查找不包含单词 (emph,section) 的 DIV

我使用了下面的模式,但它没有显示正确的输出

 preg_match_all('/<div tagname="(?!emph)(?!section)(?!footnote)
      (?!note).*"/i',$new_updated_html,$divstarttag);

有接盘侠吗??

4

2 回答 2

3

我检查了您的代码,它的工作正常,除了您需要使用以下两行替换所有新行和空格 -

$string = preg_replace('/\s\s+/', ' ', $subject);

$data = preg_replace('/\r\n/', "", $string);
于 2012-08-08T07:39:54.933 回答
1

请查看PHP Simple DOM Parser(或任何其他 PHP HTML 解析框架)。您应该避免对 HTML 使用正则表达式。DOM Parser 应该允许您遍历div文档中的各个部分并访问相关信息。

于 2012-08-08T07:30:27.043 回答