我有一个像这样的字符串
<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);
任何接受者?
答案 0 :(得分:3)
我检查了你的代码并且它的工作正常,除了你需要使用以下两行替换所有新的行和空格 -
$string = preg_replace('/\s\s+/', ' ', $subject);
$data = preg_replace('/\r\n/', "", $string);
答案 1 :(得分:1)
请查看PHP Simple DOM Parser(或任何其他PHP HTML解析框架)。使用HTML的正则表达式是您应该避免的。 DOM Parser应该允许您遍历文档中的div
部分并访问相关信息。